Sviluppare funzionalita su Microsoft Office con VBA Macro copia incolla da fogli cartella

Login Registrati
Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
  • Autore
    Articoli
  • #53213 Score: 0 | Risposta

    Frasubb
    Partecipante
      1 pt

      ciao a tutti,

      vista la mia poca dimestichezza con il linguaggio vba, prima di allegare file e quindi farvi perdere tempo, chiedo se si può fare: in pratica avrei bisogno di creare una macro, con command button, che vada a copiare determinati dati, riferiti alla data "oggi", controllando la loro eventuale presenza in tutti i fogli della cartella di lavoro; se trovati, incollarli a quel punto in un foglio di riepilogo.

      È fattibile tutto ciò ?

      Grazie mille 

      #53214 Score: 0 | Risposta

      alexps81
      Moderatore
        58 pts

        Si che si può fare.

        #53216 Score: 0 | Risposta

        Frasubb
        Partecipante
          1 pt

          alexps81 ha scritto:

          Si che si può fare

          Grazie Alex, allora spiego i dettagli.

          da ogni foglio nuovo creato, la macro deve fare questo:

          copiare i dati contenuti nelle celle C3, C4, range B12:B200, range G12:G200 .... nel foglio

          "1R" .....

          ed incollarli rispettivamente nelle celle B4, D4, range N4:N200, L4:L200 di quest'ultimo

          Allego file e spero di essermi spiegato.

          Grazie mille !!

          Allegati:
          You must be logged in to view attached files.
          #53218 Score: 0 | Risposta

          alexps81
          Moderatore
            58 pts

            Frasubb ha scritto:

            spero di essermi spiegato

            Non proprio. Che correlazione c'è tra questo:

            Frasubb ha scritto:

            creare una macro, con command button, che vada a copiare determinati dati, riferiti alla data "oggi", controllando la loro eventuale presenza in tutti i fogli della cartella di lavoro; se trovati, incollarli a quel punto in un foglio di riepilogo

            e questo:

            Frasubb ha scritto:

            da ogni foglio nuovo creato, la macro deve fare questo:

            copiare i dati contenuti nelle celle C3, C4, range B12:B200, range G12:G200 .... nel foglio

            "1R" .....

            ed incollarli rispettivamente nelle celle B4, D4, range N4:N200, L4:L200 di quest'ultimo

            A parte copiare/incollare dati, ma il resto non ho capito. Prova a spiegarti meglio.

            #53219 Score: 0 | Risposta

            alexps81
            Moderatore
              58 pts

              Ciao @frasubb

              rileggendo meglio ciò che hai scritto ed cercando di capire il risultato voluto in base alla struttura dei nuovi fogli...prova a vedere se ha capito:

              Sub estraiDati()
                  Dim ws As Worksheet
                  Dim ur As Long, i As Long, newRow As Long
                  Dim dataTrovata As Boolean
              
                  Application.ScreenUpdating = False
                  Application.Calculation = xlCalculationManual
                  
                  newRow = Sheets("1R").Cells(Rows.Count, "L").End(xlUp).Row
                  If newRow < 3 Then newRow = 3
                  
                  For Each ws In ThisWorkbook.Worksheets
                      If ws.Name <> "1" And ws.Name <> "1R" And ws.Name <> "Fee" And ws.Name <> "FoglioBase" Then
                          dataTrovata = False
                          ur = ws.Cells(Rows.Count, "B").End(xlUp).Row
                          If ur >= 12 Then
                              For i = 12 To ur
                                  With Sheets("1R")
                                      If IsDate(ws.Range("B" & i).Value) Then
                                          If CDate(ws.Range("B" & i).Value) = Date Then
                                              newRow = newRow + 1
                                              If Not dataTrovata Then
                                                  .Range("B" & newRow).Value = ws.Range("C3").Value2
                                                  .Range("D" & newRow).Value = ws.Range("C4").Value2
                                                  dataTrovata = True
                                              End If
                                              .Range("L" & newRow).Value = ws.Range("G" & i).Value2
                                              .Range("N" & newRow).Value = ws.Range("B" & i).Value2
                                          End If
                                      End If
                                  End With
                              Next i
                          End If
                      End If
                  Next ws
                  
                  Set ws = Nothing
                  Application.ScreenUpdating = True
                  Application.Calculation = xlCalculationAutomatic
              End Sub

              in pratica, fai una scansione di ogni foglio presente nel Fila, escludendo: "1"; "1R"; "Fee"; "FoglioBase".

              Quindi va a controllare in ogni cella di colonna "B" (a partire dal rigo 12 fino all'ultima cella compilata) se c'è una data riferita ad "oggi". Se esiste allora preleva "Cliente" e "Contatore" e li trascrive nel foglio "1R" rispettivamente in cella "B" e "D" a partire da rigo 4 in poi.

              Poi preleva "scad. rata" e "da pagare" riferiti al giorno di "oggi" e li riporta nel Foglio "1R" nelle celle di colonna "N" e "L" sempre a partire dal rigo 4 in poi.

              #53220 Score: 0 | Risposta

              Frasubb
              Partecipante
                1 pt

                alexps81 ha scritto:

                Ciao @frasubb

                Ciao Alex, grazie innanzitutto.

                 Ancora non ho potuto provare niente perché non ho un pc con me, però lo farò  in giornata.

                 Leggendo ciò che hai scritto, comunque hai capito perfettamente.

                 Volevo solo chiederti se si può aggiungere un alert che, in caso di corrispondenze non trovate, possa scrivere “scadenze non presenti in data odierna”.

                 Grazie mille ancora per la tua assistenza e pazienza

                #53222 Score: 0 | Risposta

                alexps81
                Moderatore
                  58 pts

                  Frasubb ha scritto:

                  si può aggiungere un alert che, in caso di corrispondenze non trovate, possa scrivere “scadenze non presenti in data odierna”.

                  Vedi prima se funziona come vorresti, poi lo aggiungiamo.

                  #53227 Score: 0 | Risposta

                  Frasubb
                  Partecipante
                    1 pt

                    alexps81 ha scritto:

                    Vedi prima se funziona come vorresti

                    funziona bene, solo che nel foglio 1R ci sono i parziali dei mesi che a questo punto devono sommare tutti quegli importi presenti nella colonna L a condizione che gli corrisponda un "Si" nella colonna P, ovviamente medesima riga.

                    Così come è impostato, vengono sommati tutti gli importi di tutte le righe valorizzate, invece la discriminante è "Si" nella colonna P

                    #53246 Score: 0 | Risposta

                    alexps81
                    Moderatore
                      58 pts

                      Ma scusa...non sto capendo. La macro funziona? Questa è una nuova richiesta o sbaglio? Ad ogni modo non ho capito cosa chiedi. Sarebbe utile un esempio pratico sul foglio...ovviamente se questa discussione è risolta, allora spuntala come tale e fai richiesta in una nuova discussione.

                      #53264 Score: 0 | Risposta

                      Frasubb
                      Partecipante
                        1 pt

                        alexps81 ha scritto:

                        La macro funziona?

                        la macro funziona benissimo.

                        Discussione risolta, apro nuova per altra casistica

                      Login Registrati
                      Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
                      Rispondi a: Macro copia incolla da fogli cartella
                      Gli allegati sono permessi solo ad utenti REGISTRATI
                      Le tue informazioni: