A voir également:
- Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
5 réponses
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
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
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...
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...
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
-----------------------------------------------------
' 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
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
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
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
-----------------------------------------------------
' 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.