Remplacer la valeur d'une colonne en testant le texte dune autre
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Vba remplacer une valeur par une autre dans une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Remplacer disque dur par ssd - Guide
- Excel additionner une colonne - Guide
- Figer une colonne excel - Guide
2 réponses
Bonsoir,
1- déclarer :
2- remplacer :
Par :
Cel.Offset(ligne, Colonne) décale, à partir de la cellule Cel d'autant de ligne et/ou de colonne qu'indiqué dans l'Offset.
Attention aux types de données entre cible et r.Offset(0, 10).
Si toutes les 2 en String, pas de souci...
EDIT :
remplacer :
par :
A+
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
1- déclarer :
Dim r As Range
2- remplacer :
If InStr(1, cible) = False Then
Par :
If r.Offset(0, 10) = cible Then
Cel.Offset(ligne, Colonne) décale, à partir de la cellule Cel d'autant de ligne et/ou de colonne qu'indiqué dans l'Offset.
Attention aux types de données entre cible et r.Offset(0, 10).
Si toutes les 2 en String, pas de souci...
EDIT :
remplacer :
If r = "x" Or r = "X" Then
par :
If UCase(r.Value) = "X" Then
A+
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
J'ai effectué les modifications mais j'ai une erreur d'exécution 424 à la ligne . La valeur renvoyé de "r" en "nothing" avec un espion sur la valeur de "r".
Voici le nouveau code:
Merci!
Une fois n'est pas coutume, l'erreur vient d'ailleurs...
Ce n'est plus r le souci, mais plage.
En déclarant plage As Variant et en lui affectant un Range (plage = Range("E2" & ":E" & DerLig)) tu en fais, en réalité, une variable tableau encapsulée dans un Variant.
Tu as donc deux choix :
- soit tu travailles avec des variables tableaux et donc là tu oublies ta boucle For Each pour te satisfaire d'une boucle For Next ou Do Loop,
- soit tu travailles avec des Range, mais il faut affecter le Range à plage pour pouvoir utiliser ta boucle For Each.
A noter : For Each permet de boucler sur une collection d'objets, pas sur un tableau...
Voici pour toi :
Méthode avec For Each sur un Range
Méthode avec For Next sur un tableau
Vérifier les colonnes E et O, ne suis pas sur de moi...
J'ai essayé les deux versions, la première version fonctionne bien, par contre, il y a une erreur dans la deuxième à la ligne .
Je ne comprend pas vraiment la distinction entre les 2 options, collections d'objets?
Merci!
Objets, collections d'objets, sont les débuts de la programmation VBA sous Excel.
Une feuille est un objet, un range aussi...
Lis quelques tutos à ce sujet sur Internet, ça va vite à maitriser.