Condividi:        

Macro cerca verticale con più dati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro cerca verticale con più dati

Postdi ingtech » 26/03/14 17:42

Buonasera,

vi chiedo aiuto in quanto dovrei creare una macro che mi fa un cerca verticale di tutti i valori nella colonna A del foglio 2 e mi mette nelle colonne 1-2-3 i valori trovati nelle colonne B-C-D del foglio 1 (allego esempio)
l'unica cosa è che il foglio 1 e foglio 2 sono su due file excel diversi

Vi ringrazio

https://www.dropbox.com/s/z0dnetgwr6c4q1d/esempio.xlsx
ingtech
Utente Junior
 
Post: 22
Iscritto il: 29/10/12 11:39

Sponsor
 

Re: Macro cerca verticale con più dati

Postdi ingtech » 26/03/14 18:28

qualcuno può aiutarmi?

grazie mille
ingtech
Utente Junior
 
Post: 22
Iscritto il: 29/10/12 11:39

Re: Macro cerca verticale con più dati

Postdi Anthony47 » 26/03/14 23:53

Il Cerca.Vert si puo' benissimo fare tra file diversi, basta che ambedue siano aperti: prova a comporre la formula che va in Foglio2, muovendoti dal file2 al file1 quando devi impostare la "Matrice tabella"; ti verra' qualcosa come
Codice: Seleziona tutto
=CERCA.VERT(A2;'[PCF_Secondo-file.xls]Foglio3'!$A:$D;2;0)

che puoi copiare verso il basso e nelle colonne adiacenti previa la variazione di Indice.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro cerca verticale con più dati

Postdi ingtech » 27/03/14 00:47

Si Antony, è vero. Però io vorrei avere la possibilità di poter scrivere nelle celle per modificare in seguito i dati che vengono fuori.
Stavo provando a creare una macro di questo tipo:

Codice: Seleziona tutto
Private Prova()
'
       
        For x = 2 To 20
        For y = 1 To 20
       
       
            If UCase(Worksheets("Foglio1").Range("A" & y)) = _
               UCase(Worksheets("Foglio2").Range("D" & x)) Then
                Range("E" & z) = Worksheets("foglio1").Range("B" & y)
                 
            End If
            Next
            Next     
       
End Sub


copiando un pò qua e un pò la, però non funziona bene.
E poi servirebbe sono a copiare la prima colonna, ti prego di illuminarmi

grazie
ingtech
Utente Junior
 
Post: 22
Iscritto il: 29/10/12 11:39

Re: Macro cerca verticale con più dati

Postdi Anthony47 » 27/03/14 16:02

Con il layout che hai descritto questa macro dovrebbe essere sufficiente:
Codice: Seleziona tutto
Sub retrieve()
Dim WB2 As String, WB2SH As String, I As Long, J As Long
'
WB2 = "MULTI_B40324_copia.xlsm"     ' << Il nome del "secondo file" da cui prelevare
WB2SH = "Foglio1ZZ"                 ' << Il nome del foglio da cui prelevare
'
With Workbooks(WB2).Sheets(WB2SH)
    For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        For J = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(I, 1) = .Cells(J, 1) Then
                Cells(I, 2).Resize(1, 3).Value = .Cells(J, 2).Resize(1, 3).Value
                Exit For
            End If
        Next J
    Next I
End With
End Sub

Metti la macro nel file su cui vuoi copiare i dati, in un modulo standard (es Modulo1); personalizza le istruzioni marcate <<.
Poi torna su Excel, apri il File da cui prelevare, compila la lista di colonna A del foglio su cui vuoi importare e, con quel foglio attivo, lancia la Sub Retrieve.

Fai sapere, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro cerca verticale con più dati":


Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti