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

Signaler
Messages postés
113
Date d'inscription
mardi 14 septembre 2010
Statut
Membre
Dernière intervention
26 octobre 2014
-
cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
27319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
322
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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 ...