Login Registrati
Stai vedendo 13 articoli - dal 26 a 38 (di 38 totali)
  • Autore
    Articoli
  • #2138 Score: 0 | Risposta

    Luca73
    Partecipante
      58 pts
      Ciao
      Prova ad allegare il tuo file con le macro
      Ciao
      Luca
      #2139 Score: 0 | Risposta

      nicopana
      Partecipante
        Ok, ti allego il file.
        Ho fatto ripartire la macro, ma non riesco a risolvere il problema con l'errore di Debug
        Allegati:
        You must be logged in to view attached files.
        #2142 Score: 0 | Risposta

        Luca73
        Partecipante
          58 pts
          Ho capito qual'è il tuo problema.
          La macro work sheets change lancia una macro (reg_bolla) che a sua volta seleziona alcune celle nel foglio regbolle
          Sheets("Reg Bolle").Select
              Range("C10:D10").Select
          Ora se selezioni celle in Reg Bolle Parte di nuovo la macro worksheets selection change.
          Poiche a questo punto hai selezionato due celle il target.value è un vettore e  non puoi confrontarlo con una singola stringa.
          Io proporrei una soluzione in due pezzi.
          la prima è prima di chiamare la macro reg_bolla inserire in Application.EnableEvents = False che inibisce le macro legati ad eventi. L'importante e prima di end sub di inserire un
          Application.EnableEvents = True in modo da riabilitare l'esecuzione di macro da evento.
          Inoltre se l'attivazione della macro sarà sempre dalla colonna F allora anzichè inserire la m (o se vuoi oltre ad inserire la m) aggiungerei
          1) condizione che la cella target sia una sola
          2) condizione che la cella sia in colonna F
          La macro si trasforma così
          Private Sub Worksheet_SelectionChange(ByVal Target As Range)
          If Not Intersect(Target, Range("F1").EntireColumn) Is Nothing Then
              If Target.Count > 1 Then
                  Exit Sub
              End If
              If Target.Value = "m" Then
                  Application.EnableEvents = False
                  Call reg_bolla
              End If
          End If
          Application.EnableEvents = True
          End Sub
          Se invece volessi togliere la "m"
          Private Sub Worksheet_SelectionChange(ByVal Target As Range)
          If Not Intersect(Target, Range("F1").EntireColumn) Is Nothing Then
              If Target.Count > 1 Then
                  Exit Sub
              End If
              Application.EnableEvents = False
              Call reg_bolla
          End If
          Application.EnableEvents = True
          End Sub
          Ciao
          #2143 Score: 0 | Risposta

          nicopana
          Partecipante
            Ti ringrazio per aver capito il problema.
            Diciamo che non vorrei bloccare la macro a colonne o celle in particolare, perché la stessa tipologia di macro viene ripetuta su altri fogli in maniera similare, ma può prendere un numero diverso di celle nell'intervallo.
            Pertanto preferisco semplicemente che al posizionamento dove ci sia una cella con m piuttosto che qualunque altro valore, purchè questa cella la possa posizionare a mio piacimento, parte la macro reg_bolla
            Quindi come cambiare il codice?
            #2144 Score: 0 | Risposta

            patel
            Moderatore
              51 pts
              Esiste il pulsante CODE che permette di inserire il codice, non nel messaggio ma nella finestra che si apre cliccandolo, usatelo altrimenti diventa tutto illeggibile
              Comunque io ho abbandonato perché non ho ancora capito cosa vuoi Nicopana, cambi troppo spesso le carte in tavola, devi essere più chiaro. Anche sull'altro forum dove ti hanno bloccato sei stato troppo vago.
              #2145 Score: 0 | Risposta

              nicopana
              Partecipante
                Tutto ok, ho usato la seconda versione, quella senza la m, ma con la sola indicazione di colonna che posso adattare tranquillamente anche in file leggermente diversi dove la colonna è diversa, grazie mille.
                Adesso provo a chiedere un dettaglio aggiuntivo. La macro reg_bolla va a creare un record che si inserisce superiormente nel foglio DBbolle, e via via gli altri già registrati vengono messi in basso. Al lancio della macro, e quindi alla registrazione della bolla, è possibile far uscire una casella di testo che mi controlla se il num.bolla inserito l'ho già inserito in record precedenti? e quindi in record che si trovano in basso?
                #2146 Score: 0 | Risposta

                Luca73
                Partecipante
                  58 pts
                  Ciao
                  con tutte le domande che fai e i programmi che stai gestendo mi stupisco che tu faccia ancora domande del genere.
                  Ti basta fare un ciclo for each (per esempio) in tutte le celle del DB contenenti il codice e vedere se tale codice esiste.
                  Ti crei una variabile booleana (vero/falso) chiamata Esiste
                  la forzi a falso
                  All'interno del ciclo for se il codice che cerchi è diverso non fai nulla latrimenti forzi esiste a vero e poi esci dal ciclo for
                  Vedi sotto come esempio.
                  Ciao
                  Sub Trova()
                  
                  
                  Dim CellaW As Range
                  Dim Trovato As Boolean
                  Trovato = False
                  For Each CellaW In Sheets(2).Range("A1", Sheets(2).Cells(Rows.Count, 1)).End(xlUp)
                      If CellaW.Value = Sheets(1).Range("C8").Value Then
                          Trovato = True
                          Exit For
                      End If
                  Next
                  If Trovato Then
                      MsgBox "Esiste"
                  Else
                      MsgBox "NON Esiste"
                  End If
                  #2147 Score: 0 | Risposta

                  nicopana
                  Partecipante
                    Il problema è che non so scrivere molto in VBA, e ho bisogno di qualche "spintarella" per poi arrivare ad adattare il codice al mio caso.
                    Comunque grazie, lo testo e ti faccio sapere.
                    #2248 Score: 0 | Risposta

                    nicopana
                    Partecipante
                      Ti faccio alcune domande a riguardo del codice che mi hai scritto:
                      - questo codice lo devo inserire nel foglio relativo a DBbolle giusto? Oppure in reg-bolle? Te lo chiedo perché non capisco dove va a fare la ricerca (Sheet1 o Sheet2) e non capisco dove si appoggia quel C8 che hai considerato (immagino forse sia in reg-bolle anche se di qualche rigo sfalzato rispetto all'ultimo file che ci siamo condivisi)
                      - posso poi eliminare l'ultima parte "...Else MsgBox "NON Esiste...""? Vorrei che il messaggio mi venga restituito solo quando il numero inserito esiste, diversamente andiamo avanti normalmente con gli inserimenti
                      - manca anche l'End Sub nel codice giusto?
                      #2249 Score: 0 | Risposta

                      patel
                      Moderatore
                        51 pts
                        Il codice si mette in un modulo standard, di solito in Modulo1 e non in un foglio. Nel modulo del foglio si mette soltanto il codice relativo ad un evento.
                        Nel codice che ti hanno suggerito sono indicati già i fogli interessati.
                        #2251 Score: 0 | Risposta

                        nicopana
                        Partecipante
                          Ok fatto, allego comunque il file perché la macro non dà segni di vita nonostante provi ad eseguirla.
                          Allegati:
                          You must be logged in to view attached files.
                          #2336 Score: 0 | Risposta

                          nicopana
                          Partecipante
                            Qualche novità?
                            #2619 Score: 0 | Risposta

                            nicopana
                            Partecipante
                              Non dimenticatemi per favore
                            Login Registrati
                            Stai vedendo 13 articoli - dal 26 a 38 (di 38 totali)
                            Rispondi a: Macro su cella
                            Gli allegati sono permessi solo ad utenti REGISTRATI
                            Le tue informazioni: