[VBA] boucle jusqu'à ce qu'il n'y ait plus de lignes à traiter

Fermé
CacstuDrummer - 14 févr. 2014 à 10:30
DGVDR
Messages postés
158
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
20 juillet 2015
- 14 févr. 2014 à 14:53
Bonjour à tous/toutes,

Il fut un temps ou j'ai fait du VBA... mais j'ai TOUT oublié tsss...

J'ai un nouveau fichier excel de quelques lignes tous les jours (jamais le même nombre de lignes), et je veux imprimer chaque ligne sur une feuille.

Dim cellule As Range
Dim nb As Integer
Dim row As Integer

Set cellule = Range("A2")
Set nb = cellule.Value
Set row = cellule.row

While (nb <> "")

Range("A2:HU2").Select
Selection.Copy
Sheets("MACRO").Select
Range("B2;HU2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False


Wend

Je m'auto déprime tellement je sais que je m'y prends comme un manche.

Alors :
- on ne touche pas à ce qui est en gras
- l'idée était de faire une boucle : on regarde si A2 est vide, s'il l'est pas on met en variable le range "A2:HU2" , puis on effectue le bazar. On regarde si A3 est vide, s'il l'est pas on met en variable le range "A3:HU3" , etc etc...

Je voulais aller chercher le numéro de ligne avec un .row , mais je me paume tout seul...
Pouvez vous m'aider ? je suis total en galère pour ce truc tellement simple...

3 réponses

DGVDR
Messages postés
158
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
20 juillet 2015

14 févr. 2014 à 10:35
Bonjour,

Ce que je te propose :

Obtenir ta dernier ligne :

Derlig = .Range("A65536").End(xlUp).Row ' Colonne intéressante à définir

En faire une boucle

For i = 2 To Derlig

Et faire une condition :

If A2<> "" Then 
' ...on regarde si A2 est vide,...


A ta dispo,

DGVDR
0
CactusDrummer
14 févr. 2014 à 14:35
bon, j'ai passé une petite heure à me réimpregner de VBA ... je donne ma solution pour ceux qui seraient intéressés :

Dim arret, i As Integer

arret = 1
i = 2

While arret <> ""

Range("A" & i & ":HU" & i).Select

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

i = i + 1
arret = Range("A" & i).Value

Wend
0
DGVDR
Messages postés
158
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
20 juillet 2015

14 févr. 2014 à 14:53
Comment ta boucle s'arrête t elle ?
0