Domanda copiare colonne in base alla data

Matteo93z

Nuovo utente
28 Marzo 2020
7
1
2019MAC
0
Buonasera,
vorrei poter leggere in una cella del foglio "rapporto del giorno" il testo di una cella del foglio "database" e far si che si aggiorni in automatico in base al giorno (OGGI).

Immagino che spiegato così non è di facile comprensione per questo allego in esempio. Spero così di essere di più facile comprensione.


Grazie per il tempo dedicatomi.
 

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
28.072
1.865
Como
2011MAC 365WIN
815
Ciao,
in pratica si devono aggiornare solo C4 e C5 del secondo foglio, giusto?

Se è così metti questo codice nel modulo del foglio2
Visual Basic:
Private Sub Worksheet_Activate()
    With Foglio1
        For j = 1 To .Cells(2, Columns.Count).End(xlToLeft).Column
            If Format(.Cells(2, j), "dd/mm/yyyy") = Format(Cells(3, 3), "dd/mm/yyyy") Then
                Cells(4, 3) = .Cells(4, j)
                Cells(5, 3) = .Cells(5, j)
                Exit For
            End If
        Next j
    End With
End Sub
 
Ultima modifica:

Matteo93z

Nuovo utente
28 Marzo 2020
7
1
2019MAC
0
Grazie, funziona.

Ora però quello era solo un esempio, dovrei inserirla in foglio con 42 nomi e 365 giorni. Sarebbe così gentile da spiegarmi come potrei scriverla e adattarla in base al mio foglio?
 

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
28.072
1.865
Como
2011MAC 365WIN
815
Se la struttura del foglio è la stessa funzionerà anche con 365 giorni.
 

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
28.072
1.865
Como
2011MAC 365WIN
815
Perchè l'esempio non rispecchia il file originale?
Cambia il codice così

Visual Basic:
Private Sub Worksheet_Activate()
    Dim j As Integer, uR As Long, i As Long
    With Foglio1
        For j = 1 To .Cells(2, Columns.Count).End(xlToLeft).Column
            If Format(.Cells(2, j), "dd/mm/yyyy") = Format(Cells(3, 3), "dd/mm/yyyy") Then
                uR = .Cells(Rows.Count, j).End(xlUp).Row
                For i = 4 To uR
                    Cells(i, 3) = .Cells(i, j)
                Next i
                Exit For
            End If
        Next j
    End With
End Sub
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!