Macro Excel

Cathy -  
 christian -
Bonjour,

Je recherche l'instruction VBA qui permet de sélectionner toute une colonne d'une feuille excel.

Merci pour votre aide.

Cdt
Cathy
A voir également:

5 réponses

Cathy
 
En fait, je me suis peut etre pas tres bien expliqué.

J'ai besoin de faire une boucle qui va lire , par exemple toute la colonne B d'une feuille et qui va regarder pour chaque ligne de la colonne B la valeur qu'elle contient pour la comparer à une valeur quelconque. Et c'est cette boucle qui m'intérèsse.
Merci
0
tuton Messages postés 94 Statut Membre 5
 
honnetement je n'y connais pas grand chose en VBA.

Mais bon on va essayer
on pourait imaginer un truc comme ça:

la collone à tester serait la B et la case de reference A1
pour les syntaxes s'aider en appuyant sur F1

la ligne à tester serait appelée "Ligne"
la variable testing est la valeur de la case BX à tester
et TestVide sert juste à finir de tester quand il n'y a plus de données

rem definition des variables

TestVide = 0
Ligne = 1
Testing = 0

while TestVide == 0

Testing = recuperation de la valeur de la cellule ("B"+Ligne)
If Testing == 0
then
TestVide = 1
else
comparer la cellule "B"+Ligne avec "$A$1"
Ligne = Ligne +1
endif

endwhile

Comme j'y connais pas grand chose en VBA je ne sais pas trop bien comment récuperer les valeurs des cellules mais je pense qu'un schéma comme celui là devrait peu près fonctionner..
Je suis pas sur que ca serve mais bon...
0
Mattiou
 
Salut, alors voilà un exemple de script pour te déplacer dans la colonne B :

-----------------------------------------------------
' Définition variables
Dim valeur_B As string
Dim i, nb_lignes As Integer
Dim Cel As Range

' Positionnement à la première ligne de B
Set Cel = Range("B1")
' Récupération de la dernière ligne
nb_lignes = Cel.End(xlDown).Row

For i = 1 to nb_lignes

valeur_B = Cel.Offset(i,0).value

' Faire tests que tu veux sur valeur_B
' if valeur_B = .... then
'
'end if

' Repositionnement à la première ligne B
Set Cel = Range("B1")

next

---------------------------------------------------------------

La méthode importante pour te déplacer à partir d'un point précis ici est Offset(nb_lignes, nb_colonnes) .

Voili voilou, il y a sans doute moyen de faire plus simple ou différemment. J'espère que ça t'aidera un peu quand même...

Tchussy

Mattiou
0
Cathy
 
Merci ca marche super bien. Je debute en VBA et j'ai vraiment bcp de mal, merci de m'avoir aider.

J'en profite pour te demander un dernier renseignement :

quand la cellule de colonne B contient, une valeur déterminée, j'aimerais que la cellule de la colonne C (meme ligne) face une action quelconque. Quel est le code a utilisé pour lui dire de changer de colonne mais de garder la même ligne?

Merci
0
Mattiou
 
our te positionner sur la colonne C de la même ligne, là aussi tu peux utiliser la fonction Offset. Tu peux modifier le code de la manière suivante (ajouts en gras):

-----------------------------------------------------
' Définition variables
Dim valeur_B As string
Dim i, nb_lignes As Integer
Dim Cel, Cel2 As Range

' Positionnement à la première ligne de B
Set Cel = Range("B1")
' Récupération de la dernière ligne
nb_lignes = Cel.End(xlDown).Row

For i = 1 to nb_lignes

valeur_B = Cel.Offset(i,0).value
' Positonnement sur la colonne C :
Set Cel2 = Cel.Offset(0,1)

' Faire tests que tu veux sur valeur_B
'if valeur_B = .... then
'
'end if

' Repositionnement à la première ligne B
Set Cel = Range("B1")

next

---------------------------------------------------------------

Maintenant tu peux lancer l'action que tu veux sur ta cellule Cel2...
Voili voilou, si t'as d'autres questions, n'hésites pas ...

Mattiou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
christian
 
Bonsoir,
Je suis débutant en macro excel.
Voici mon pb.:
Je n'ai pas pu réaliser la macro précédente car refus de cel.end(xlDown).Row
En fait j'ai des valeurs numériques en A1:A10 (parfois cel. vides)et je dois inclure en B1:B10 la date du jour si cel (A1:A10)non vides.
Les dates doivent être figées et non pas se modifier à chaque ouverture du worksheet (demain, dans 2 jours,....)
Merci de votre aide, je réalise un travail pour une oeuvre sociale.
0