Macro pour comparer caractere dans deux cellules
tiotevero
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une macro pour un fichier qui n'est pas très propre en fait, j'aimerais rajouter quelques lignes pour le nettoyer, et j'ai besoin de votre aide.
A1 : V53A B1 : V534
A2 : V21D B2 : V482
A3 : V21X B3 : V217
J'aimerais comparer les 3 premiers caractères des deux colonnes et si ils ne sont pas identiques, supprimer la ligne. Pour mon exemple, je supprimerai ligne 2.
Je pense à une fonction de comparaison dans une boucle pour passer toutes les lignes de mon fichier de 600k lignes mais je ne suis pas vraiment douée.
Pour info, les cellules commenceront toujours par un V.
Je remercie d'avance, ceux et celles qui auront des idées,
Véro
J'ai une macro pour un fichier qui n'est pas très propre en fait, j'aimerais rajouter quelques lignes pour le nettoyer, et j'ai besoin de votre aide.
A1 : V53A B1 : V534
A2 : V21D B2 : V482
A3 : V21X B3 : V217
J'aimerais comparer les 3 premiers caractères des deux colonnes et si ils ne sont pas identiques, supprimer la ligne. Pour mon exemple, je supprimerai ligne 2.
Je pense à une fonction de comparaison dans une boucle pour passer toutes les lignes de mon fichier de 600k lignes mais je ne suis pas vraiment douée.
Pour info, les cellules commenceront toujours par un V.
Je remercie d'avance, ceux et celles qui auront des idées,
Véro
A voir également:
- Macro pour comparer caractere dans deux cellules
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Caractere speciaux - Guide
- Fusionner deux cellules excel - Guide
1 réponse
Bonjour,
un exemple de code a mettre dans un module VBA
un exemple de code a mettre dans un module VBA
Sub compare()
'fige ecran pour gain temps execution
Application.ScreenUpdating = False
'nom de feuille a adapter
With Worksheets("feuil1")
' derniere cellule non vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
'boucle de derniere ligne a 1
For x = derlig To 1 Step -1
'test si difference des 3 caracteres de gauche
If Left(.Range("A" & x), 3) <> Left(.Range("B" & x), 3) Then
'delete ligne
.Rows(x).Delete
End If
Next x
End With
'defige ecran
Application.ScreenUpdating = True
End Sub
Merci pour la macro qui est très commenté, ce qui est super plaisant à lire pour quelqu'un qui ne code pas.
J'ai une erreur sur: la méthode Delete de la classe Range a échoué.
Auriez-vous une idée ?
EDIT: Ma plage etait sous forme de tableau
Problème résolu !!
Merci bien
Sur quelle ligne est l'erreur ????
Quand vous avez l'erreur, clic sur debugage, placez le curseur souris sur derlig et rendez compte
votre tableau commence bien en colonne A ???
A+