Je cherche une méthode pour faire le contrôle suivant dans un fichier EXCEL
qui se compose:
De 10 onglets.
Sur les 10 onglets, j'ai 1 onglet avec :
Colonne A Colonne C
14 12
14 13
14 1158
...
L'onglet ci-dessus est un récapitulatif de tous les onglets mais j'aimerais
être sûr qu'il est cohérent.
Je cherche donc à voir si pour mon client 14 j'ai bien effectivement dans
tous les autres onglets 3 lignes avec les montants 12, 13 et 1158.
Cela pour tous mes clients en colonne A.
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
FFO
Salut à toi Solution macro Onglet récapilatif : Feuil1 Colonne A référence client colonne C montant colonne D en Feuil1 : Onglets divergents
Le code : Sheets("Feuil1").Activate Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1, 0).Row For j = 1 To Sheets.Count On Error Resume Next Ligne = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0), After:=Range("A1"), LookIn:=xlValues, LookAt _ :=xlPart).Row If Ligne > 1 And Ligne <> "" Then If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then Trouvé = 1 Else Lignesuivante = Ligne For k = 1 To 65535 Lignesuivante = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A" & Lignesuivante)).Row If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then Trouvé = 1 Exit For End If If Lignesuivante = Ligne Then Exit For End If k = k + 1 Next End If End If If Trouvé = "" Then Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/" Else Trouvé = "" End If Ligne = "" Next i = i + 1 Loop
Celà devrait te convenir
Dis moi
Salut à toi
Solution macro
Onglet récapilatif : Feuil1
Colonne A référence client
colonne C montant
colonne D en Feuil1 : Onglets divergents
Le code :
Sheets("Feuil1").Activate
Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1,
0).Row
For j = 1 To Sheets.Count
On Error Resume Next
Ligne = Sheets(j).Range("A1", "A" &
Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0),
After:=Range("A1"), LookIn:=xlValues, LookAt _
:=xlPart).Row
If Ligne > 1 And Ligne <> "" Then
If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then
Trouvé = 1
Else
Lignesuivante = Ligne
For k = 1 To 65535
Lignesuivante = Sheets(j).Range("A1", "A" &
Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A"
& Lignesuivante)).Row
If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then
Trouvé = 1
Exit For
End If
If Lignesuivante = Ligne Then
Exit For
End If
k = k + 1
Next
End If
End If
If Trouvé = "" Then
Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/"
Else
Trouvé = ""
End If
Ligne = ""
Next
i = i + 1
Loop
Salut à toi Solution macro Onglet récapilatif : Feuil1 Colonne A référence client colonne C montant colonne D en Feuil1 : Onglets divergents
Le code : Sheets("Feuil1").Activate Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1, 0).Row For j = 1 To Sheets.Count On Error Resume Next Ligne = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0), After:=Range("A1"), LookIn:=xlValues, LookAt _ :=xlPart).Row If Ligne > 1 And Ligne <> "" Then If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then Trouvé = 1 Else Lignesuivante = Ligne For k = 1 To 65535 Lignesuivante = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A" & Lignesuivante)).Row If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then Trouvé = 1 Exit For End If If Lignesuivante = Ligne Then Exit For End If k = k + 1 Next End If End If If Trouvé = "" Then Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/" Else Trouvé = "" End If Ligne = "" Next i = i + 1 Loop
Celà devrait te convenir
Dis moi
Gandalf
OK merci pour cette macro.
J'ai changé un peu la macro car le montant est en colonne E et j'ai mis en colonne K les onglets divergents.
En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille 1 existe dans les autres onglets: existe (indicateur = 1), n'existe pas (indicateur=0). Sachant que la recherche dans les autres onglets doit se faire uniquement sur certains onglets (ceux qui commencent par CA) et le couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple (Colonne B, Colonne BI) des onglets commençant par CA.
Merci pour toute réponse.
"FFO" wrote:
Salut à toi Solution macro Onglet récapilatif : Feuil1 Colonne A référence client colonne C montant colonne D en Feuil1 : Onglets divergents
Le code : Sheets("Feuil1").Activate Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1, 0).Row For j = 1 To Sheets.Count On Error Resume Next Ligne = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0), After:=Range("A1"), LookIn:=xlValues, LookAt _ :=xlPart).Row If Ligne > 1 And Ligne <> "" Then If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then Trouvé = 1 Else Lignesuivante = Ligne For k = 1 To 65535 Lignesuivante = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A" & Lignesuivante)).Row If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then Trouvé = 1 Exit For End If If Lignesuivante = Ligne Then Exit For End If k = k + 1 Next End If End If If Trouvé = "" Then Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/" Else Trouvé = "" End If Ligne = "" Next i = i + 1 Loop
Celà devrait te convenir
Dis moi
OK merci pour cette macro.
J'ai changé un peu la macro car le montant est en colonne E et j'ai mis en
colonne K les onglets divergents.
En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne
K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille 1
existe dans les autres onglets: existe (indicateur = 1), n'existe pas
(indicateur=0). Sachant que la recherche dans les autres onglets doit se
faire uniquement sur certains onglets (ceux qui commencent par CA) et le
couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple
(Colonne B, Colonne BI) des onglets commençant par CA.
Merci pour toute réponse.
"FFO" wrote:
Salut à toi
Solution macro
Onglet récapilatif : Feuil1
Colonne A référence client
colonne C montant
colonne D en Feuil1 : Onglets divergents
Le code :
Sheets("Feuil1").Activate
Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1,
0).Row
For j = 1 To Sheets.Count
On Error Resume Next
Ligne = Sheets(j).Range("A1", "A" &
Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0),
After:=Range("A1"), LookIn:=xlValues, LookAt _
:=xlPart).Row
If Ligne > 1 And Ligne <> "" Then
If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then
Trouvé = 1
Else
Lignesuivante = Ligne
For k = 1 To 65535
Lignesuivante = Sheets(j).Range("A1", "A" &
Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A"
& Lignesuivante)).Row
If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then
Trouvé = 1
Exit For
End If
If Lignesuivante = Ligne Then
Exit For
End If
k = k + 1
Next
End If
End If
If Trouvé = "" Then
Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/"
Else
Trouvé = ""
End If
Ligne = ""
Next
i = i + 1
Loop
J'ai changé un peu la macro car le montant est en colonne E et j'ai mis en colonne K les onglets divergents.
En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille 1 existe dans les autres onglets: existe (indicateur = 1), n'existe pas (indicateur=0). Sachant que la recherche dans les autres onglets doit se faire uniquement sur certains onglets (ceux qui commencent par CA) et le couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple (Colonne B, Colonne BI) des onglets commençant par CA.
Merci pour toute réponse.
"FFO" wrote:
Salut à toi Solution macro Onglet récapilatif : Feuil1 Colonne A référence client colonne C montant colonne D en Feuil1 : Onglets divergents
Le code : Sheets("Feuil1").Activate Do While Range("A2").Offset(i, 0).Row < Range("A65535").End(xlUp).Offset(1, 0).Row For j = 1 To Sheets.Count On Error Resume Next Ligne = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).Find(What:=Range("A2").Offset(i, 0), After:=Range("A1"), LookIn:=xlValues, LookAt _ :=xlPart).Row If Ligne > 1 And Ligne <> "" Then If Sheets(j).Range("C" & Ligne) = Range("C2").Offset(i, 0) Then Trouvé = 1 Else Lignesuivante = Ligne For k = 1 To 65535 Lignesuivante = Sheets(j).Range("A1", "A" & Sheets(j).Range("A65535").End(xlUp).Row).FindNext(After:=Sheets(j).Range("A" & Lignesuivante)).Row If Sheets(j).Range("C" & Lignesuivante) = Range("C2").Offset(i, 0) Then Trouvé = 1 Exit For End If If Lignesuivante = Ligne Then Exit For End If k = k + 1 Next End If End If If Trouvé = "" Then Range("D2").Offset(i, 0) = Range("D2").Offset(i, 0) & Sheets(j).Name & "/" Else Trouvé = "" End If Ligne = "" Next i = i + 1 Loop
Celà devrait te convenir
Dis moi
FFO
Rebonjours à toi
"En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille 1 existe dans les autres onglets: existe (indicateur = 1), n'existe pas (indicateur=0)"
Mon code convient parfaitement !!!! En mettant ton indicateur en colonne K tu vérifies si le résultat obtenu correspond en colonne D dans mon code (à modifier éventuellement)
exemple :
Pour un couple avec l'indicateur à 0 en colonne D : aucune divergence donc couple présent dans les autres Onglets donc incohérence Tous les Onglets en divergences donc couple absent donc cohérence Quelques Onglets en divergences donc couple absent pour ceux-ci et présents pour les autres cohérence incomplète
Idem Pour un couple avec l'indicateur à 1
Tu peux rajouter ces quelques lignes de code pour réaliser cette analyse et de colorier en rouge par exemple ceux à revoir car incohérent :
En colonne D les résultat et colonne K l'indicateur
For each c in Worksheets("Feuil1").Range("D2", "D" & Sheets("Feuil1").Range("A65535").End(xlup).Row) If c = "" And Range("K" & c.Row) = 0 or c <> "" And Range("K" & c.Row) = 1 then c.interior.colorindex = 3 End If Next
Celà devrait te convenir
"Sachant que la recherche dans les autres onglets doit se faire uniquement sur certains onglets (ceux qui commencent par CA) et le couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple (Colonne B, Colonne BI) des onglets commençant par CA."
Peux tu préciser comment déterminer les couples qui sont concernés !!!!
Dans l'attente
Rebonjours à toi
"En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne
K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille
1
existe dans les autres onglets: existe (indicateur = 1), n'existe pas
(indicateur=0)"
Mon code convient parfaitement !!!!
En mettant ton indicateur en colonne K tu vérifies si le résultat obtenu
correspond en colonne D dans mon code (à modifier éventuellement)
exemple :
Pour un couple avec l'indicateur à 0
en colonne D :
aucune divergence donc couple présent dans les autres Onglets donc incohérence
Tous les Onglets en divergences donc couple absent donc cohérence
Quelques Onglets en divergences donc couple absent pour ceux-ci et présents
pour les autres cohérence incomplète
Idem Pour un couple avec l'indicateur à 1
Tu peux rajouter ces quelques lignes de code pour réaliser cette analyse et
de colorier en rouge par exemple ceux à revoir car incohérent :
En colonne D les résultat et colonne K l'indicateur
For each c in Worksheets("Feuil1").Range("D2", "D" &
Sheets("Feuil1").Range("A65535").End(xlup).Row)
If c = "" And Range("K" & c.Row) = 0 or c <> "" And Range("K" & c.Row) = 1
then
c.interior.colorindex = 3
End If
Next
Celà devrait te convenir
"Sachant que la recherche dans les autres onglets doit se
faire uniquement sur certains onglets (ceux qui commencent par CA) et le
couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple
(Colonne B, Colonne BI) des onglets commençant par CA."
Peux tu préciser comment déterminer les couples qui sont concernés !!!!
"En fait ce que je cherche plutôt à faire c'est par exemple mettre en colonne K un indicateur pour dire si le couple (colonne A, Colonne E) de la feuille 1 existe dans les autres onglets: existe (indicateur = 1), n'existe pas (indicateur=0)"
Mon code convient parfaitement !!!! En mettant ton indicateur en colonne K tu vérifies si le résultat obtenu correspond en colonne D dans mon code (à modifier éventuellement)
exemple :
Pour un couple avec l'indicateur à 0 en colonne D : aucune divergence donc couple présent dans les autres Onglets donc incohérence Tous les Onglets en divergences donc couple absent donc cohérence Quelques Onglets en divergences donc couple absent pour ceux-ci et présents pour les autres cohérence incomplète
Idem Pour un couple avec l'indicateur à 1
Tu peux rajouter ces quelques lignes de code pour réaliser cette analyse et de colorier en rouge par exemple ceux à revoir car incohérent :
En colonne D les résultat et colonne K l'indicateur
For each c in Worksheets("Feuil1").Range("D2", "D" & Sheets("Feuil1").Range("A65535").End(xlup).Row) If c = "" And Range("K" & c.Row) = 0 or c <> "" And Range("K" & c.Row) = 1 then c.interior.colorindex = 3 End If Next
Celà devrait te convenir
"Sachant que la recherche dans les autres onglets doit se faire uniquement sur certains onglets (ceux qui commencent par CA) et le couple (colonne A, Colonne E) de la feuille 1 doit correspondre au couple (Colonne B, Colonne BI) des onglets commençant par CA."
Peux tu préciser comment déterminer les couples qui sont concernés !!!!