problème avec For Next

F

Fifi Bricotin

Guest
Bonjour le forum,

j'ai un problème avec le code suivant qui devrait m'imprimer le même document situé dans l'onglet 'feuille') en autant d'exemplaires qu'il y a de clients différents (dans la colonne A de l'onglet 'Feuil2').
L'ennui c'est que c'est toujours le même nom qui s'imprime dns la cellule H1 de 'Feuille', et pas celui du client suivant dans la liste. Pourtant j'avais réussi dans un prmeier temps !... J'ai certainement fait une bêtise depuis, mais je ne la vois pas !

Merci à vous de m'indiquer ce qui cloche.

Bon après-midi.

Fifi

Private Sub CommandButton3_Click()

Marep = MsgBox('Avez-vous saisi le nouveau mois dans les paramètres ? OUI = OK, NON = Annuler', 1, 'ATTENTION')
If Marep = vbOK Then

Sheets('Feuil2').Select
Range('A8', Range('A8').End(xlDown)).Select
For Each Cell In Selection
Cell.Select
Sheets('Feuille').Range('H1') = ActiveCell.Value
Sheets('Feuille').Range('A1:I42').PrintOut Copies:=1, collate:=True
Next
Sheets('feuil2').Select
Range('A7').Select
Else
End If
End Sub
 
F

Fifi Bricotin

Guest
Bonjour Jeannot,

et merci de ta réponse.

J'ai modifié comme tu me l'as écrit, malheureusement ça ne change rien à mon problème, c'est toujours le même nom qui s'imprime à chaque fois en H1 !

Je pense que je patauge au niveau des instructions next et else ?

Dans l'espoir que quelqu'un me dépannera....

Bonne journée.

Fifi
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

essaies ainsi

Private Sub CommandButton3_Click()

Marep = MsgBox('Avez-vous saisi le nouveau mois dans les paramètres ? OUI = OK, NON = Annuler', 1, 'ATTENTION')
If Marep = vbOK Then

Sheets('Feuil2').Select
Ligne=range('A8').end(xldown).row
For Each Cell In range('A8:A' & ligne)
Sheets('Feuille').Range('H1') = cell
Sheets('Feuille').Range('A1:I42').PrintOut Copies:=1, collate:=True
Next
Sheets('feuil2').Select
Range('A7').Select
End If
End Sub
 

Gael

XLDnaute Barbatruc
Bonjour Fifi, bonjour Jeannot,

Essaye de corriger de la façon suivante:

Code:
Dim cell as range
For Each Cell In Selection
Sheets('Feuille').Range('H1') = Cell.Value
Sheets('Feuille').Range('A1:I42').PrintOut Copies:=1, collate:=True
Next cell

Sans garantie car je suis vraiment débutant en VBA ;)

@+

Gael

Et salut Pascal, désolé je n'avais pas rafraîchi.

Gael

Message édité par: Gael, à: 28/02/2006 15:35
 

Jeannot45

XLDnaute Occasionnel
re,

Je viens d'essayer en apportant les modif ques je proposais, çà a l'air de marcher.

Voici le code que j'ai modifié:
Code:
Marep = MsgBox('Avez-vous saisi le nouveau mois dans les paramètres ? OUI = OK, NON = Annuler', 1, 'ATTENTION')
If Marep = vbOK Then

Sheets('Feuil2').Select
Range('A8', Range('A8').End(xlDown)).Select
For Each Cell In Selection
[u][b]'Cell.Select[/b][/u]
Sheets('Feuille').Range('A1') = [color=#FF0000][b]Cell[/b][/color]
'Sheets('Feuille').Range('A1:I42').PrintOut Copies:=1, collate:=True
Next
Sheets('feuil2').Select
Range('A7').Select
Else
End If
 
F

Fifi Bricotin

Guest
Bonjour Pascal, Gael, et re-Jeannot,

Mrci de vos réponses.

J'ai essayé la solution de Pascal (les autres n'étant pas encore 'arrivées'). Elle me parait parfaite, pour autant que je sois capable d'en juger, et pourtant mon problème demeure, bien que j'ai fait un strict copier/coller de son code : Toujours le même nom qui s'imprime en H1 !

Cela peut il provenir de la structure de la colonne A où est située la liste des noms à imprimer (dans 'Feuille')? Je commence à 'A8' qui est le 1er nom de la liste, A7 étant le le titre de la colonne.
Et de A8 à A95 (pour l'instant) j'ai des noms qui se suivent sans cellule vide.

Je ne comprends pas?....

Merci de votre aide à tous

Fifi
 
F

Fifi Bricotin

Guest
Bonjour JP, et re à tous les autres,

suite aux derniers posts de jp et de Gael, je me pose la question de ce qui pourrait provoquer mon problème, et qui serait extérieur à CE code ?

Pour mémoire, le code initial que JP a essayé avec succès a fonctionné il y a 2 jours avec moi également. Et j'ai essayé à tt hasard avec une autre imprimante : même problème !

Je suis ouvert à toutes les suggestions.

Merci JP et tous les autres.

Fifi
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Ton code ne serait pas dans le code d'une feuille et non dans un module par hasard ??

si c'est le cas recopie ton code dans un module avec un nom quelconque et ensuite sur le click de ton bouton tu lances la macro nouvellement nommée
 
F

Fifi_Bricotin

Guest
Re-bonjour tout le monde,

Pascal, merci de ta suggestion.

J'ai fait comme tu m'as dit puisque le code n'était pas dans un module, mais dans le bouton de mon userform, donc je l'ai déplacé dans un module, nommé la macro 'test', et j'ai appelé la macro test par le click sur le bouton de mon userform.
Le résultat est identique, pas de messsage d'erreur, mais toujours l'impression du même nom !

Help !

Bonne soirée,

Fifi
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94