Excel VBA Boucle de Recherche cellules vides

Résolu/Fermé
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
- 8 nov. 2008 à 14:29
mnlad
Messages postés
29
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
13 août 2011
- 11 nov. 2008 à 08:15
Bonjour,

J'ai fais une boucle simple de recherche de cellules vide dans une colonne A et qui inscrit une valeur dans la première cellule vide trouvée.

For i = 1 To 10

If Cells(i, 1).Value = "" Then Exit For

Next i

Cells(i, 1).Value = Sheets("feuil1").TextBox1.value

End Sub

Cela fonctionne, maintenant voila mon problème:
- cette boucle va de la cellule 1 à 10 mais moi j'aimerai qu'elle ne fasse que les cellules 1, 3, 5, 9

J'ai voulu essayer avec la propriété select case mais ma syntaxe est fausse.

Merci d'avance pour votre aide si quelqu'un a une idée

6 réponses

mnlad
Messages postés
29
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
13 août 2011
8
8 nov. 2008 à 14:45
Je pense que c'est impossible avec la boucle for je peux te proposer de faire le test de cellule. C'est-à-dire fais un test a l'intérieur de la boucle for qui test le numéro ou la position de la cellule
Par exemple tu peut faire:
if cellule=3 or Cellule=5 or Cellule=9 then
'Tu mes le code que tu veut
end if
1
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
8 nov. 2008 à 14:55
Salut

Merci déjà de me répondre

Je vois pas trop ou tu veux en venir, pourrais tu me faire un code pour voir ce que sa donne
merci
0
lermite222
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
8 nov. 2008 à 14:56
Bonjour,
si c'est comme tu explique...
For i = 1 To 10 step 2
A+
0
pilas31
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
630
8 nov. 2008 à 18:36
Bonjour,

Si tes indices de colonnes sont quelconques, tu peux aussi créer une collection et boucler dessus comme dans l'exemple ci dessous :

Dim Num_Colonne As New Collection

Num_Colonne.Add (1)
Num_Colonne.Add (3)
Num_Colonne.Add (5)
Num_Colonne.Add (9)

For Each i In Num_Colonne

....


Next i



Cdlt
0

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

Posez votre question
lermite222
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
8 nov. 2008 à 18:50
Oups, j'avais pas vu que tu voulais pas du 7 :-D
peu aussi faire..
For i = 1 To 10 step 2
If i<>7 then
....
end if
Next i
0
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
9 nov. 2008 à 23:34
Merci pour vos réponse j'ai trouvé aussi un truc pas mal et assez facile

toto = array(1,3,5,9)

for i = 0 to ubound(toto)

If Cells(toto(i), 1).Value = "" Then exit for

next i

Cells(toto(i), 1).Value = Sheets("feuil1").TextBox1.value

Bonne continuation
a+

0
lermite222
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
10 nov. 2008 à 11:22
Bonjour,
Effectivement, c'est la meilleur solution et la plus polyvalente.
A+
0
mnlad
Messages postés
29
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
13 août 2011
8
11 nov. 2008 à 08:15
Bonjour
La solution que tu as eu est la meilleure et c'est celle que j'ai aussi trouvé et que je voulais t'envoyer. Elle est impécable, facile et réalisable.

A+
0