You are here:--[RISOLTO] Selezionare un rigo e trascina giù
[RISOLTO] Selezionare un rigo e trascina giù2018-12-24T18:50:48+02:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Selezionare un rigo e trascina giù

  • Autore
    Articoli
  • AvatarDOMENICO04
    Partecipante
      Post totali: 66

      Salve, qualcuno puo aiutarmi a fare un codice, che sostituisce quello sotto per velocizzare il tutto.
      Il codice essendo stato fatto con una registrazione macro è lento.
      Vengono considerati i primi 13 fogli
      Selezionare il primo rigo con formula, che sarebbe in tutti i fogli A5:C5 e trascina giù fino al rigo 92.
      grazie

      Sheets("I").Select ' seleziona A5-B5-C5 di tutte le sezioni e trascina giu per eliminare errori
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("II").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("III").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("IV").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("V").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("VI").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("VII").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("VIII").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C92"), Type:=xlFillDefault
      Range("A5:C92").Select
      Sheets("IX").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
      Range("A5:C89").Select
      Sheets("X").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C90"), Type:=xlFillDefault
      Range("A5:C90").Select
      Sheets("XI").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
      Range("A5:C89").Select
      Sheets("XII").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
      Range("A5:C89").Select
      Sheets("XIII").Select
      Range("A5:C5").Select
      Selection.AutoFill Destination:=Range("A5:C89"), Type:=xlFillDefault
      Range("A5:C89").Select
      • Questo argomento è stato modificato 9 mesi, 3 settimane fa da sid sid.
    • sidsid
      Moderatore
        Post totali: 718

        Prova questa soluzione

        Sub trascina()
        Dim vFogli As Variant
        Dim j As Long
        vFogli = Array("I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII")
        For j = LBound(vFogli) To UBound(vFogli)
            With Sheets(vFogli(j))
                .Range("A5:C5").AutoFill Destination:=.Range("A5:C92"), Type:=xlFillDefault
            End With
        Next j
        End Sub

        Ho messo i fogli in un array; in questo modo anche se li sposti, vengono considerati solo quelli; logicamente puoi aggiungere o togliere i fogli che vuoi

      • AvatarDOMENICO04
        Partecipante
          Post totali: 66

          è possibile vedere i passaggi riga per riga?

          ho provato a posizionarmi sul codice e con F8 sono andato avanti ma non mi fa vedere i passaggi

        • sidsid
          Moderatore
            Post totali: 718

            Non ho fatto altro che eliminare tutti i vari .Select; quando ad un oggetto, esempio un foglio di lavoro, gli assegni la paternità, non c’è bisogno di attivarlo per eseguire la macro.
            Comunque per vedere come funziona foglio per foglio, ti basta aggiungere l’istruzione
            .Activate
            dopo
            With Sheets(vFogli(j))

          • AvatarDOMENICO04
            Partecipante
              Post totali: 66

              si volevo solo vedere i passaggi se funzionava tutto bene e infatti va bene, solo che non velocizza in confronto alla registrazione macro che c’era prima…peccato.

            • sidsid
              Moderatore
                Post totali: 718

                … solo che non velocizza in confronto alla registrazione macro che c’era prima…peccato.

                Vorresti dire che il codice come l’ho fatto è lento come prima?

              • AvatarDOMENICO04
                Partecipante
                  Post totali: 66

                  Si

                • sidsid
                  Moderatore
                    Post totali: 718

                    Allora dovrei vedere il file

                  • AvatarDOMENICO04
                    Partecipante
                      Post totali: 66

                      Il file è in questo post

                      https://www.bysal-excel.it/forums/topic/copia-incolla-dati-e-nomi-saltando-alcune-righe/

                      Pubblicato il 27 novembre.

                      Tra l’altro a questo post non mi avete più risposto.

                    • sidsid
                      Moderatore
                        Post totali: 718

                        Purtroppo il tempo da dedicare non è molto; si fa quel che si può
                        Il link al file è scaduto; devi rimetterlo.

                      • AvatarDOMENICO04
                        Partecipante
                          Post totali: 66

                          scusami non volevo portare fretta, solo che siccome era una discussione chiusa e riaperta non sapevo se arrivavano le notifiche dei nuovi messaggi a chi seguiva.

                          perchè io non me lo ritrovo nelle discussione aperte nel mio profilo.

                          ti riallego il file

                          http://www.filedropper.com/rubricagedetprova3

                        • sidsid
                          Moderatore
                            Post totali: 718

                            Nel file non hai messo la macro.
                            Ho messo il codice ma senza dati non posso capire dove rallenta la macro.

                          • AvatarDOMENICO04
                            Partecipante
                              Post totali: 66

                              in a5 del foglio 1 c’è la formula

                              =presenti!C2

                              in B5

                              =MAIUSC(SE(presenti!A2=””;””;SINISTRA(presenti!A2;RICERCA(“@”;SOSTITUISCI(presenti!A2&” “;” “;”@”;INT((LUNGHEZZA(presenti!A2)-LUNGHEZZA(SOSTITUISCI(presenti!A2;” “;””))+2)/2)))-1)))

                              in C5

                              =MAIUSC(ANNULLA.SPAZI(STRINGA.ESTRAI(presenti!A2;LUNGHEZZA(B5)+1;999)))

                              e tiri giù

                              non le metto io perchè non so come fare a cancellare i dati sensibili senza cancellare le formule

                            • sidsid
                              Moderatore
                                Post totali: 718

                                Nel foglio presenti cella A2, che valore c’è?

                              • sidsid
                                Moderatore
                                  Post totali: 718

                                  Nel foglio presenti cella A2, che valore c’è?

                                  Dimmi anche in C2 cosa c’è

                                • AvatarDOMENICO04
                                  Partecipante
                                    Post totali: 66

                                    Ci sono nominativi in entrambi

                                  • sidsid
                                    Moderatore
                                      Post totali: 718

                                      Devi essere più preciso:
                                      Sono nominativi che riguardano la stessa persona?
                                      Sono indirizzi mail?

                                      fammi un esempio per A2 e C2 del foglio presenti, così riesco a capire cosa restituiscono le formule (un’idea ce l’ho, ma voglio sentirla da te)

                                    • AvatarDOMENICO04
                                      Partecipante
                                        Post totali: 66

                                        sullo stesso rigo sono nominativi che riguardano la stessa persona…

                                        non ci sono indirizzi mail..

                                        in A2 c’è nome e cognome nella stessa cella, in B2 e C2 ci sono numeri che riguardano il nominativo in A2

                                      • sidsid
                                        Moderatore
                                          Post totali: 718

                                          Ho provato ad inserire dati come mi hai detto; da me la macro è un fulmine.
                                          Mi spiace ma per capire cosa non va, dovrei vedere il file originale.
                                          Se vuoi puoi mandarmelo in privato; ti garantisco la massima discrezione.

                                        • AvatarDOMENICO04
                                          Partecipante
                                            Post totali: 66

                                            forse dipende che i dati, che sono nel foglio “presenti”, vengono da un file acces, che tra l’altro si trova in un server e forse il tutto rallenta.

                                          • sidsid
                                            Moderatore
                                              Post totali: 718

                                              Forse hai del codice nell’evento change di ogni foglio?

                                            • AvatarDOMENICO04
                                              Partecipante
                                                Post totali: 66

                                                comunque va bene lasciamo così.

                                                grazie

                                              • sidsid
                                                Moderatore
                                                  Post totali: 718

                                                  Come vuoi

                                                La discussione ‘[RISOLTO] Selezionare un rigo e trascina giù’ è chiusa a nuove risposte.

                                                Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                                                Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                                                Chiudi