Script d'impression automatique bugge
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:
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
Citation:
erreur de compilation, nombre d'arguments incorrect ou affectation de propriété incorrecte
Code:
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)