Decalé 2 colonnes à droite de la cellule active avec une condition

iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014 - 15 oct. 2010 à 17:42
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 15 oct. 2010 à 20:46
Bonjour,
Salut tout le monde et grand salut pour les gens qui connaissent [VBA].
SVP aidez moi de transformer ce langage francais en lagage [VBA].
Si la valeur de la cellule B1, B2, B3, B.....la fin du tableau est = "D" Alors
Sélectionner la cellule située 1 colonnes à droite de la cellule active
Sinon Sélectionner la cellule située 2 colonnes à droite de la cellule active
Fin du test
et merci beaucoup

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 oct. 2010 à 18:29
Bonjour,

Alors pour faire simple:
1 - Tu parcours ta colonne "B"
2 - Tu testes chaque valeur pour voir si égale à "D"
3 - Lorsque Oui (2) .; alors selection de la cellule voulue sinon l'autre.

Ce qui donnerait en code :


Sub Macro1()

Dim Nbl  As Integer 'nombre de lignes de mon tableau
    Nbl = Range("B65536").End(xlUp).Row
Dim Maplage As Range 'Plage à scruter ..
Set Maplage = Range("B1:B" & Nbl)

For Each cell In Maplage 'boucle sur la plage
    'test..
    If cell.Value = "D" Then
        ' Si = "D" alors selection de la cellule colonne + 1
        Cells(cell.Row, cell.Column + 1).Select
    Else 'sinon
        ' Si <> "D" alors selection de la cellule colonne + 2
        Cells(cell.Row, cell.Column + 2).Select
    End If
Next 'Suite de la boucle...


End Sub



Après, à toi de l'adapter à tes besoins.


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 oct. 2010 à 20:45
ou, à la place de
Cells(cell.Row, cell.Column + 1).Select
utiliser
cell.Offset(0, 1).Select

Grande méfiance quand vous choisissez des noms de variable :
"cell" pourrait ressembler à un mot clé du langage --> bug difficile à cerner des fois.
Pensez à mettre le type d'objet en abrégé devant vos variables :
sChaine 's' pour String
lChiffre 'l' pour Long
oCell 'o' pour objet, ou rgCell 'rg' pour Range, pourquoi pas.
Vous pourrez sans crainte inventer des noms de variables

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 oct. 2010 à 20:46
Au fait : A quoi sert de sélectionner une cellule si on n'y fait rien après ?
Parce que là, la boucle va bien sélectionner les cellules d'à côté, mais il ne se passera rien ...
0
Rejoignez-nous