[cpp]Sub Bouton1()
Dim rngBF1 As Range, rngBF2 As Range
dim vLig as long
Application.ScreenUpdating = False
'définition de la plage sur la feuille synthèse (ici de A1 à la dernière cellule remplie) :
Set rngBF1 = Sheets("synthèse").Range("A1:" & Sheets( _
"synthèse").Cells(Rows.Count, 1).End(xlUp).Address)
'définition de la plage sur la feuille MC (ici de G1 à la dernière cellule remplie) :
Set rngBF2 = Sheets("MC").Range("G1:" & Sheets( _
"MC").Cells(Rows.Count, 7).End(xlUp).Address)
For Each cell In rngBF1
If Not IsError(Application.Match(cell, rngBF2, 0)) Then
vLig = Application.Match(cell, rngBF2, 0) 'vLig = n° de la ligne trouvée dans la feuille MC
If Sheets("MC").Range("AA" & vLig) = "TF-Post" Then
'on ne fait rien
Else
Sheets("synthèse").Rows(cell.Row).Delete
End if
Else
Application.ScreenUpdating = True
cell.Select
msgbox "Cellule " & cell.Address & " sans correspondance dans MC", vbokonly + vbcritical, "Anomalie"
End If
Next
Application.ScreenUpdating = True
End Sub
[/cpp]
il fonctionne mais trop lent car il verifie si chaque cellule de la colonne A a bien un correspondant a la colonne G de la feuille "MC"
donc il y a une boite de dialogue qui s'affiche a chaque fois qu'il n'y pas de correspondance et moi je dois cliquer dessus pour pouvoir avancer
du coup s'il y a 10000 cellules a tester de sera donc penible ..!!
si quelqu'un peu bien me donner de l'aide sur ce code
merci
avant tout sachez que :
j'ai testé le code je croix qu'il est bon mais il y a un soucis par rapport a deux choses
premierement ma feuille synthese est un filtre que j'ai réalisé via un code
du coup dans ma feuille synthese il y a des lignes qui n'existent pas ma premiere cellule est donc A51 mais peu etre A30 car ça depend du fichier source qui n'a toujours pas le meme nombre de valeurs à trier.
donc ma premiere valeur et en A51 par exemple et la derniere
A200 par exemple mais il y a supression de certaines lignes entre A51 ET A200..
aussi dans la feuille "MC" c'est a partir de G2 que les nombres commencent
donc quand j'ai executé le code j'ai eu le message d'erreur ci-dessous DANS UNE BOITE DE DIALOGUE appelée "ANOMALIE"
" cellule $A$1 sans correspondance dans MC
lorsque je clic sur OK ça me fais passé a la cellule suivante .. et ainsi de suite .. jusqu'a ce que je parcours toute la colonne "A" mais si j'ai une colonne A a 1000 cellules ça devient penible
sinon j'ai supression des lignes ça signifie que le code m'efface bien ce que je veux ...
merci de votre aide POUR LE RENDRE PLUS EFFICACE :sol:
Dim rngBF1 As Range, rngBF2 As Range
dim vLig as long
Application.ScreenUpdating = False
'définition de la plage sur la feuille synthèse (ici de A1 à la dernière cellule remplie) :
Set rngBF1 = Sheets("synthèse").Range("A1:" & Sheets( _
"synthèse").Cells(Rows.Count, 1).End(xlUp).Address)
'définition de la plage sur la feuille MC (ici de G1 à la dernière cellule remplie) :
Set rngBF2 = Sheets("MC").Range("G1:" & Sheets( _
"MC").Cells(Rows.Count, 7).End(xlUp).Address)
For Each cell In rngBF1
If Not IsError(Application.Match(cell, rngBF2, 0)) Then
vLig = Application.Match(cell, rngBF2, 0) 'vLig = n° de la ligne trouvée dans la feuille MC
If Sheets("MC").Range("AA" & vLig) = "TF-Post" Then
'on ne fait rien
Else
Sheets("synthèse").Rows(cell.Row).Delete
End if
Else
Application.ScreenUpdating = True
cell.Select
msgbox "Cellule " & cell.Address & " sans correspondance dans MC", vbokonly + vbcritical, "Anomalie"
End If
Next
Application.ScreenUpdating = True
End Sub
[/cpp]
il fonctionne mais trop lent car il verifie si chaque cellule de la colonne A a bien un correspondant a la colonne G de la feuille "MC"
donc il y a une boite de dialogue qui s'affiche a chaque fois qu'il n'y pas de correspondance et moi je dois cliquer dessus pour pouvoir avancer
du coup s'il y a 10000 cellules a tester de sera donc penible ..!!
si quelqu'un peu bien me donner de l'aide sur ce code
merci
avant tout sachez que :
j'ai testé le code je croix qu'il est bon mais il y a un soucis par rapport a deux choses
premierement ma feuille synthese est un filtre que j'ai réalisé via un code
du coup dans ma feuille synthese il y a des lignes qui n'existent pas ma premiere cellule est donc A51 mais peu etre A30 car ça depend du fichier source qui n'a toujours pas le meme nombre de valeurs à trier.
donc ma premiere valeur et en A51 par exemple et la derniere
A200 par exemple mais il y a supression de certaines lignes entre A51 ET A200..
aussi dans la feuille "MC" c'est a partir de G2 que les nombres commencent
donc quand j'ai executé le code j'ai eu le message d'erreur ci-dessous DANS UNE BOITE DE DIALOGUE appelée "ANOMALIE"
" cellule $A$1 sans correspondance dans MC
lorsque je clic sur OK ça me fais passé a la cellule suivante .. et ainsi de suite .. jusqu'a ce que je parcours toute la colonne "A" mais si j'ai une colonne A a 1000 cellules ça devient penible
sinon j'ai supression des lignes ça signifie que le code m'efface bien ce que je veux ...
merci de votre aide POUR LE RENDRE PLUS EFFICACE :sol: