Bonjour,
Voici mon besoin:
Afin de remplir automatiquement un formulaire à partir des données figurant dans une feuille A, en cliquant simplement sur le n° de ligne de cette feuille, la ligne est copiée dans la feuille B et, par calcul (=) les cellules sont remplies dans le formulaire (feuille C)

Par exemple: la cellule F5 de la feuille A est recopiée par la macro en F5 de la feuille B et dans la feuille C (formulaire), c'est la case A4 qui est égale à F5 de la feuille B (formule: =FeuilleB!F5)

Voici cette macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_SelectionChange(ByVal Cible As Range)
 
  If (Cible.Rows.Count = 1) * (Cible.Columns.Count = Me.Columns.Count) Then
    With Feuil7
      Cible.EntireRow.Copy Destination:=.Cells(3, 1)
    End With
    Sheets("Feuille C").Select
  End If
End Sub
L'étape suivante est d'imprimer autant de formulaires que de lignes dans la feuille A (on pourrait le faire via le publipostage de Word par exemple, mais il faut rester dans le contexte Excel).

Voici donc le principe que je voudrais produire par macro:

Avec le même procédé que le remplissage automatique ci-dessus:
- sélection de la première ligne de données,
- impression de la feuille C
- sélection de la ligne suivante
- impression ...
et ce jusqu'à ce que toutes les lignes de la feuille A non vides aient été balayées.

J'ai écrit le script suivant, mais il bugge
erreur de compilation, nombre d'arguments incorrect ou affectation de propriété incorrecte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Impr_Totale()
    Dim Cible As Range
    Sheets("FeuilleA").Select
    i = 3
    While Sheets("FeuilleA").Cells(i, 1).Value <> ""
        Cible.Rows.Count = i
'        Rows("1:" & i).Select
            With Feuil7
              Cible.EntireRow.Copy Destination:=.Cells(3, 1)
'              i.EntireRow.Copy Destination:=.Cells(3, 1)
            End With
        Sheets("FeuilleC").Select
        ActiveSheet.PrintOut Copies:=1
        i = i + 1
    Wend
End Sub
Pouvez-vous m'aider ? (en m'expliquant ce qui ne va pas, merci)