RechercheV dans macro

Le
Françoise
Bonjour tous,

je veux faire une macro qui dise :

dans ce dossier
dans chaque feuille except la feuille "dcompteD"
et "dcomptePU"
positionne toi en dernire ligne
puis en colonne C
Recherche Valeur de la cellule A2 dans "dcompteD" "A:E"
Si existe alors
copie valeur colonne C2 dans feuille en cours Colonne C
dernire ligne
copie valeur colonne D2 dans feuille en cours Colonne D
dernire ligne
Si n'existe pas alors
Recherche Valeur de la cellule A2 dans "dcomptePU" "A:E"
Si existe alors
copie valeur colonne D2 dans feuille en cours Colonne C
dernire ligne
copie valeur colonne E2 dans feuille en cours Colonne D
dernire ligne
Si n'existe pas alors
Passe la feuille suivante
et fais la mme action

J'ai test :

Sub MAJStock()
'

Dim DerLig As Long

With Workbooks("MAJStock")
With Worksheets("A920046ASPR")
DerLig = .Range("C65536").End(xlUp)(2).Row
Range("C" & DerLig).Select
If .FormulaR1C1 = "=VLOOKUP($A$2;DcompteD!
A:F;3;FALSE)" = False Then
.FormulaR1C1 = "=VLOOKUP($A$2;DcomptePU!A:F;3;FALSE)"
ElseIf Nothing Then
End If
End With
End With
End Sub

pour UNE feuille mais cela ne fonctionne pas car la
formule de recherche n'est pas correctement explicite

COMMENT DOIS JE FAIRE ?
D'avance merci de votre aide tous
Franoise
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #1313297
bonjour Francoise,

est ce que ça irait comme ça ?

Sub Macro1()
For Each f In Sheets
If f.Name
'c'est trois lignes ne sont qu'une seul ligne
D = Evaluate("IF(ISERROR(VLOOKUP(" & f.Name & _
"!A2,décompteD!A:D,3,TRUE)),"""",VLOOKUP(" & _
f.Name & "!A2,décompteD!A:D,3,TRUE))")

'c'est trois lignes ne sont qu'une seul ligne
PU = Evaluate("IF(ISERROR(VLOOKUP(" & f.Name & _
"!A2,décomptePU!A:D,3,TRUE)),"""",VLOOKUP(" & _
f.Name & "!A2,décomptePU!A:D,3,TRUE))")

If D <> "" Then
Range("C" & Range("C65536").End(xlUp).Row) = [C2]
Range("D" & Range("D65536").End(xlUp).Row) = [D2]
ElseIf PU <> "" Then
Range("C" & Range("C65536").End(xlUp).Row) = [D2]
Range("D" & Range("D65536").End(xlUp).Row) = [E2]
End If
Next
End Sub

isabelle


Bonjour à tous,

je veux faire une macro qui dise :

dans ce dossier
dans chaque feuille excepté la feuille "décompteD"
et "décomptePU"
positionne toi en dernière ligne
puis en colonne C
Recherche Valeur de la cellule A2 dans "décompteD" "A:E"
Si existe alors
copie valeur colonne C2 dans feuille en cours Colonne C
dernière ligne
copie valeur colonne D2 dans feuille en cours Colonne D
dernière ligne
Si n'existe pas alors
Recherche Valeur de la cellule A2 dans "décomptePU" "A:E"
Si existe alors
copie valeur colonne D2 dans feuille en cours Colonne C
dernière ligne
copie valeur colonne E2 dans feuille en cours Colonne D
dernière ligne
Si n'existe pas alors
Passe à la feuille suivante
et fais la même action
---
J'ai testé :
---
Sub MAJStock()
'

Dim DerLig As Long

With Workbooks("MAJStock")
With Worksheets("A920046ASPR")
DerLig = .Range("C65536").End(xlUp)(2).Row
Range("C" & DerLig).Select
If .FormulaR1C1 = "=VLOOKUP($A$2;DécompteD!
A:F;3;FALSE)" = False Then
.FormulaR1C1 = "=VLOOKUP($A$2;DécomptePU!A:F;3;FALSE)"
ElseIf Nothing Then
End If
End With
End With
End Sub
---
pour UNE feuille mais cela ne fonctionne pas car la
formule de recherche n'est pas correctement explicitée
---
COMMENT DOIS JE FAIRE ?
D'avance merci de votre aide à tous
Françoise


isabelle
Le #1313296
j'oubliais une ligne de commande,

Sub Macro1()
For Each f In Sheets
If f.Name f.Select <------- celle-ci

isabelle
Publicité
Poster une réponse
Anonyme