Excel VBA Boucle de recherche cellules vide

Résolu
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:52
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
- 9 nov. 2008 à 11:01
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

4 réponses

us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
8 nov. 2008 à 15:11
Bonjour,

Peut-être ainsi :

For i = 1 To 10
   if i=1 or i=3 or i=5 or i=9 then
      If Cells(i, 1).Value = "" Then Exit For
   end if
Next i 
   Cells(i, 1).Value = Sheets("feuil1").TextBox1.value

mais je ne suis pas sur que cela soit vraiment ce que tu veux faire... A la fin de la boucle, la cellule A11 sera remplie dans le cas où il n'y a pas de cellule vide trouvée... c'est peut-être normal, mais bon...

Amicalement,
Us.
3
jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
7
8 nov. 2008 à 15:59
Bonjour,

Excusez-moi (je ne suis qu'un débutant et nouveau ici, en plus...)

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

for i = 0 to ubound(toto)
  If Cells(toto(i), 1).Value = "" Then
     Cells(toto(i), 1).Value = Sheets("feuil1").TextBox1.value
     exit for
  end
 next

Mais ce n'est que d'instinct et peux me tromper (presqu'à tous les coups...)
3
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
8 nov. 2008 à 16:13
Bonjour jmf0,

Il maque IF, à End if... na !

Oui, ce que tu proposes est juste, mais ne fait pas exactement la même chose que le code proposé... Mais, il me semble aussi que cela est plus logique... mais seul Herold1983, sait ce qu'il veut...
En clair, dès qu'il y a un premier remplacement, on doit arrêter la boucle...

Amicalement,
Us.
0
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012

9 nov. 2008 à 11:01
Bonjour a tous

Merci déjà de me répondre

Alors  pour les deux méthodes que us_30 et jmf0 mon trouvé, elle fonctionne très bien les deux, je pencherai plus pour toto lol, car
à la 9e cellule donc la dernière, la boucle s'arrête alors que pour l'autre sa continue, les valeurs s'inscrivent sur la 11, 13 etc

Merci à vous tous d'avoir résolu rapidement mon problème.
Bon Dimanche
a+
0