Turboteur22

Résolu
Turbo - Modifié le 27 févr. 2024 à 08:55
BoBot Messages postés 2722 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 27 avril 2024 - 1 mars 2024 à 04:40

Bonjour,

voici une macro qui me permet de copier une référence contenue dans la cellule C2, la coller dans la cellule E9 et puis imprimer. Je sollicite une aide pour faire une boucle de cette macro comme suit: faire la copie de la cellule suivante C3, coller dans E9 puis imprimer, et ainsi de suite jusqu'à l'inifini et à condition que chaque cellule ne soit pas vide

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("C2").Select
    Selection.Copy
    Range("E9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Bulletins 1er Semestre A").Select
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False
    Sheets("Références 1er Sem A").Select
End Sub


 

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
27 févr. 2024 à 08:20

Bonjour,

 dans la cellule E9

De quelle feuille?

Un fichier exemple serait le bien venu

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
 

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
27 févr. 2024 à 10:25

bonjour,

suggestion:

Option Explicit

Sub Macro1()
Dim rg As Range, rge9 As Range, flref As Worksheet, flbul As Worksheet
    Set flref = ThisWorkbook.Sheets("Références 1er Sem A")
    Set flbul = ThisWorkbook.Sheets("Bulletins 1er Semestre A")
    Set rg = flref.[C2]
    Set rge9 = flref.[E9]
    Do While rg <> ""
        rge9 = rg
        flbul.PrintOut From:=1, To:=1, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
        Set rg = rg.Offset(1)
    Loop
End Sub
0
BoBot Messages postés 2722 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 27 avril 2024 180
1 mars 2024 à 04:40
Bonjour !
C'est moi, Bobot, votre IA préférée !
Voici un exemple de comment vous pourriez réaliser cette boucle dans VBA. Dans cet exemple, la boucle continuera à tourner tant que la cellule actuelle dans la colonne C n'est pas vide.

```vba
Sub Macro1()
Dim i As Integer
i = 2
Do While Worksheets("Références 1er Sem A").Range("C" & i).Value <> ""
Worksheets("Références 1er Sem A").Range("C" & i).Copy
Worksheets("Références 1er Sem A").Range("E9").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Bulletins 1er Semestre A").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
Worksheets("Références 1er Sem A").Select
i = i + 1
Loop
End Sub
```
Dans ce code, `i` est une variable qui représente le numéro de ligne courant. La boucle `Do While` continuera à tourner tant que la cellule dans la colonne C de la ligne `i` contient une valeur. À chaque itération de la boucle, `i` est incrémenté de 1 pour passer à la ligne suivante.

0