Boucle sur une Macro

Bonjour,

Je souhaiterai créer une boucle sur une macro . Actuellement la macro récupère 6 valeurs d'une même ligne dans un tableau et les positionnent dans les cellules d'un autre tableau ( qui me sert a imprimer une étiquette)

Une fois la macro exécutée , je souhaiterai que la macro s"exécute sur la ligne du dessous .

Je vous joint mon fichier et la macro .

Merci d'avance pour votre aide.

5macro.xlsm (29.32 Ko)

Bonjour,

A tester :

Sub type2()

Dim LigneEtiquette, derLigne As Integer

'Definir la derniere Ligne en colonne 9 donc "I"
derLigne = Cells(Rows.Count, 9).End(xlUp).Row

'Pour les ligne 3 a la derniere ligne
For LigneEtiquette = 3 To derLigne

    'Type de filet
    Range("D3").Value = Range("I" & LigneEtiquette).Value

    'Widht
    Range("D5").Value = Range("J" & LigneEtiquette).Value
    Range("E5").Value = Range("K" & LigneEtiquette).Value

    'Height
    Range("D6").Value = Range("L" & LigneEtiquette).Value
    Range("E6").Value = Range("M" & LigneEtiquette).Value

    'Weight en Kg:
    Range("D7").Value = Range("Q" & LigneEtiquette).Value

    'impression
    Range("C2:E7").PrintOut Copies:=1, Collate:=True

'Ligne d'étiquette suivante
Next LigneEtiquette

End Sub

A+

EDIT : Je viens de voir qu'il y avait des lignes masquées (avec ce code elles vont s'imprimer)
La ligne 15 qui est vide va également s'imprimer.

On peut ajouter des options a la macro mais il faut savoir ce que tu souhaites imprimer

Merci beaucoup pour ton retour .

Je vais essayer cela .

Cordialement.

Pour l'Edit :
(Si tu ne souhaites pas imprimer les lignes masquées ou les lignes sans identification label)

Tu peux avoir un truc comme ça :

Sub type2()

Dim LigneEtiquette, derLigne As Integer

'Definir la derniere Ligne en colonne 9 donc "I"
derLigne = Cells(Rows.Count, 9).End(xlUp).Row

'Pour les ligne 3 a la derniere ligne
For LigneEtiquette = 3 To derLigne

    'Si la ligne en cours est masqué, on va directement a la ligne suivante
    If Rows(LigneEtiquette).Hidden = True Then GoTo LigneSuivante

    'Si dans la colonne I, ligne en cours est vide, on va directement a la ligne suivante
    If Range("I" & LigneEtiquette).Value = "" Then GoTo LigneSuivante

    'Type de filet
    Range("D3").Value = Range("I" & LigneEtiquette).Value

    'Widht
    Range("D5").Value = Range("J" & LigneEtiquette).Value
    Range("E5").Value = Range("K" & LigneEtiquette).Value

    'Height
    Range("D6").Value = Range("L" & LigneEtiquette).Value
    Range("E6").Value = Range("M" & LigneEtiquette).Value

    'Weight en Kg:
    Range("D7").Value = Range("Q" & LigneEtiquette).Value

    'impression
    Range("C2:E7").PrintOut Copies:=1, Collate:=True

'Destination du programme si ligne non voulu a l'impression
LigneSuivante:

'Ligne d'étiquette suivante
Next LigneEtiquette

End Sub

Merci pour la modif sur les lignes vides .

Je ne parviens pas a faire sauter de ligne a chaque fois . La macro me répétè toujours la même ligne . "3"

De plus , pourrais tu me donner la ligne de commande pour envoyer les étiquettes directement sur un nouvel onglet ( 1 onglet par étiquette) et pas forcement sur l'imprimante ?

Merci d'avance.

7macro.xlsm (33.20 Ko)

Je ne vois pas pourquoi la ligne ne passe pas a la suivante chez toi (si tu as bien remplacé tout ton code par le mien).

Pour la modification 1 etiquette par onglet voici un fichier mais personnellement je garderai la "version imprimer" en selectionnant pdf creator pour fusionner toutes les etiquettes en 1 pdf de plussieurs pages.

Attention sur cette version je déclare le nom de la feuille macro comme "Base" mais il y avait un espace derriere le nom de l'onglet (si tu recopie le code vérifie bien que ta feuille se nomme "macro" et pas "macro ").

Rechercher des sujets similaires à "boucle macro"