Condividi:        

Cerca Vert In VBA

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

Cerca Vert In VBA

Postdi Ubuntus » 07/11/16 23:51

ciao

ho due fogli di lavoro identici in uno viene fatta un situazione al giorno attuale, nel altro viene fatta un estrazione al giorno prima.In riga A2:A380 ci sono tutti i riferimenti. C'è una macro che lancio e mi fa tutti i conteggi confrontandomi i valori al giorno attuale ed al giorno prima elencando i vari delta; ma se nel giorno attuale mi sparisce un riferimento, che ieri c'era, io non me ne accorgo. Come potrei impostare una un cerca vert aggiungendola in fondo al codice della e che mi resituisca il risultato riga per riga di ogni riferimento su una colonna vuota es la colonna X2:X380, se c'è mi scrive il codice, se non trovato scriva "Oggi non presente"

Qualcosa del genere ?
Codice: Seleziona tutto
Range("A:A") = Application.WorksheetFunction.VLookup(Range("A2"), _ Range("A2:A380"), 1, False)


domani lo provo
Ubuntus
Utente Junior
 
Post: 81
Iscritto il: 24/07/15 15:56

Sponsor
 

Re: Cerca Vert In VBA

Postdi Anthony47 » 08/11/16 00:45

Ci sono troppe cose vaghe per una risposta precisa; questo codice scrive in X2 e sottostanti di Foglio1 la formula =Se(Conta.se(Foglio2!F1:F1000;F1)=0;"Mancante su Foglio2"; Conta.se(Foglio2!F1:F1000;F1))

Codice: Seleziona tutto
lastf1 = Sheets("Foglio1").Cells(Rows.Count, "F").End(xlUp).Row
Sheets("Foglio1").Range("X2").Formula = "=if(countif(Foglio2!F1:F1000,F1)=0,""Mancante su Foglio2"",countif(Foglio2!F1:F1000,F1))"
Sheets("Foglio1").Range("X2:X" & lastf1).FillDown

Adatta nomi fogli e colonne coi dati alla tua situazione; oppure spiega fornendo qualche dettaglio.

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

Re: Cerca Vert In VBA

Postdi Ubuntus » 09/11/16 12:40

Vorrei un equivalente di questa formula, In colonna B3:B380 del foglio dopo ho tutti i riferimenti attuali; in colonna B:B del foglio Prima ho gli altri riferimenti da controllare per verificare se qualcosa manca

+SE.ERRORE(CERCA.VERT(B3;[prima.xls]Foglio1!$B:$B;1;FALSO);"Codice Mancante")

Codice: Seleziona tutto
 ChDir "C:\"
    Workbooks.Open Filename:="C:\prima.xls"
    Workbooks.Open Filename:="C:\dopo.xls"

    Windows("dopo.xls").Activate

...
Ubuntus
Utente Junior
 
Post: 81
Iscritto il: 24/07/15 15:56

Re: Cerca Vert In VBA

Postdi Anthony47 » 09/11/16 23:19

Posso semplificarmi la vita e usare Conta.Se invece del Cerca.Vert (che richiede la gestione dell'errore generato dall'eventuale assenza di Confronto)?
Con i dati che hai aggiunto:
Codice: Seleziona tutto
lastf1 = Sheets("Foglio1").Cells(Rows.Count, "B").End(xlUp).Row      'Eventuale alternativa al 380
Sheets("Foglio1").Range("B3").Formula = "=if(countif('[Prima.xls]Foglio1'!B:B,B3)=0,""Codice Mancante"","""")"
Sheets("Foglio1").Range("B3:B380").FillDown

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

Re: Cerca Vert In VBA

Postdi Ubuntus » 09/11/16 23:50

Ho fatto una cosa del genere, eh ho visto che va, devo ancora capire perche la formula me scrive partendo da B4

Codice: Seleziona tutto
Range("Ap1:AQ1").Select
    Selection.Copy
    Range("Ap2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("Ap2").Select
    ActiveCell.Formula = "=VLOOKUP(B3,'C:\[prima.xls]Foglio1'!$B$3:$B$380,1,FALSE)"
    Range("AQ2").Select
    ActiveCell.Formula = "=VLOOKUP([prima.xls]Foglio1!B3,$B$3:$B$380,1,FALSE)"
    Range("Ap2:Aq2").Select
    Selection.Copy
    Range("AP2:Ap380").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False


c'è un modo per allargare automaticamente la colonna AP e AQ ?

grazie
Ubuntus
Utente Junior
 
Post: 81
Iscritto il: 24/07/15 15:56

Re: Cerca Vert In VBA

Postdi Anthony47 » 10/11/16 15:13

Prova aggiungendo al tuo codice
Codice: Seleziona tutto
Columns("AP:AQ").EntireColumn.AutoFit
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cerca Vert In VBA

Postdi Ubuntus » 11/11/16 00:01

ok grazie sistemato

al momento uso questo che è un cerca vert,

Codice: Seleziona tutto
Range("AQ2").Select
    ActiveCell.Formula = "=VLOOKUP([prima.xls]Foglio1!B2,$B$2:$B$380,1,FALSE)"


ripensandoci avrei bisogno dell opposto di un cerca vert cioe mi spiego se il campo non lo trova lo vorrei scrivere, se lo trova voglio lasciare la cella vuota una sorta di

Se(cercavert()=N/D;[prima.xls]Foglio1!B2;"")

come posso tradurre questo codice VBA
Ubuntus
Utente Junior
 
Post: 81
Iscritto il: 24/07/15 15:56

Re: Cerca Vert In VBA

Postdi Anthony47 » 11/11/16 01:03

Ok, quindi adesso vuoi fare l'opposto...
Sempre col Countif:
Codice: Seleziona tutto
ActiveCell.Formula =
"=if(countif($B$2:$B$380,'[prima.xls]Foglio1'!B2)=0,'[prima.xls]Foglio1'!B2,"""")"

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


Torna a Applicazioni Office Windows


Topic correlati a "Cerca Vert In VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 72 ospiti