Remplacer la valeur d'une colonne en testant le texte dune autre
Résolu/Fermé
bassmart
Messages postés
281
Date d'inscription
jeudi 19 février 2015
Statut
Membre
Dernière intervention
19 décembre 2023
-
1 avril 2016 à 17:18
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 4 avril 2016 à 17:13
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 4 avril 2016 à 17:13
A voir également:
- Vba remplacer une valeur par une autre dans une colonne
- Déplacer une colonne excel - Guide
- Remplacer disque dur par ssd - Guide
- Trier une colonne excel - Guide
- Formule somme excel colonne - Guide
- Word remplacer un mot par un autre - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
Modifié par pijaku le 1/04/2016 à 20:54
Modifié par pijaku le 1/04/2016 à 20:54
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
4 avril 2016 à 17:01
4 avril 2016 à 17:01
Pour l'erreur, j'ai un peu mélangé les deux... Il n'y a pas de. value sur les tableaux. Enlève le .value
--
--
bassmart
Messages postés
281
Date d'inscription
jeudi 19 février 2015
Statut
Membre
Dernière intervention
19 décembre 2023
1
4 avril 2016 à 17:13
4 avril 2016 à 17:13
Merci beaucoup, le problème est résolu!
Modifié par bassmart le 4/04/2016 à 15:38
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!
Modifié par pijaku le 4/04/2016 à 15:52
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...
4 avril 2016 à 16:26
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!
4 avril 2016 à 16:27
Modifié par pijaku le 4/04/2016 à 16:30
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.