dans ce dossier
dans chaque feuille except=E9 la feuille "d=E9compteD"=20
et "d=E9comptePU"
positionne toi en derni=E8re ligne
puis en colonne C
Recherche Valeur de la cellule A2 dans "d=E9compteD" "A:E"
Si existe alors
copie valeur colonne C2 dans feuille en cours Colonne C=20
derni=E8re ligne
copie valeur colonne D2 dans feuille en cours Colonne D=20
derni=E8re ligne
Si n'existe pas alors
Recherche Valeur de la cellule A2 dans "d=E9comptePU" "A:E"
Si existe alors
copie valeur colonne D2 dans feuille en cours Colonne C=20
derni=E8re ligne
copie valeur colonne E2 dans feuille en cours Colonne D=20
derni=E8re ligne
Si n'existe pas alors
Passe =E0 la feuille suivante=20
et fais la m=EAme action
---
J'ai test=E9 :
---
Sub MAJStock()
'
Dim DerLig As Long
With Workbooks("MAJStock")
With Worksheets("A920046ASPR")
DerLig =3D .Range("C65536").End(xlUp)(2).Row
Range("C" & DerLig).Select
If .FormulaR1C1 =3D "=3DVLOOKUP($A$2;D=E9compteD!
A:F;3;FALSE)" =3D False Then
.FormulaR1C1 =3D "=3DVLOOKUP($A$2;D=E9comptePU!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=20
formule de recherche n'est pas correctement explicit=E9e
---
COMMENT DOIS JE FAIRE ?
D'avance merci de votre aide =E0 tous
Fran=E7oise
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Francoise,
est ce que ça irait comme ça ?
Sub Macro1() For Each f In Sheets If f.Name <> "décompteD" And f.Name <> "décomptePU" Then
'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
bonjour Francoise,
est ce que ça irait comme ça ?
Sub Macro1()
For Each f In Sheets
If f.Name <> "décompteD" And f.Name <> "décomptePU" Then
'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
Sub Macro1() For Each f In Sheets If f.Name <> "décompteD" And f.Name <> "décomptePU" Then
'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
j'oubliais une ligne de commande,
Sub Macro1() For Each f In Sheets If f.Name <> "décompteD" And f.Name <> "décomptePU" Then f.Select <------- celle-ci
isabelle
j'oubliais une ligne de commande,
Sub Macro1()
For Each f In Sheets
If f.Name <> "décompteD" And f.Name <> "décomptePU" Then
f.Select <------- celle-ci