Panier pour bon de commande

Fermé
nikoEH Messages postés 64 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 28 juin 2012 - 9 mai 2008 à 11:10
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 9 mai 2008 à 16:42
Bonjour à tous,
Voici le code d'une macro qui sert à remplir un bon de commande en cliquant sur la référence voulue puis sur "Ajouter au panier"

Private Sub ajouter_Click()
Dim MonClasseur As Workbook
Set MonClasseur = ActiveWorkbook
Selection.Copy
Windows("panier.xls").Activate
Sheets("Feuil1").Activate
Range("A12").Select
Do While ActiveCell <> ""
    ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
MonClasseur.Activate
Set MonClasseur = Nothing
End Sub 


Ce code marche, cependant je voudrais que la copie ne se fasse que jusqu'à la ligne 31. Ensuite avant de remplir la 32 je voudrais qu'un message s'affiche pour indiquer que le panier est plein.

Je suppose qu'il faut déclarer une variable pour compter le nombre de copier et coller. Mais je bloque la dessus.

Quelqu'un saurait-il m'éclairer sur la démarche à suivre? Merci d'avance
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 mai 2008 à 11:45
Bonjour

a essayer, je n'ai pas testé:

Private Sub ajouter_Click()
Dim lig As Long
'Dim MonClasseur As Workbook
'Set MonClasseur = ActiveWorkbook inutile puisque tu es déjà sur le classeur
Selection.Copy
Windows("panier.xls").Activate
With Sheets("Feuil1")
.activate
lig = .Range("65536").End(xlUp).Row
If lig > 31 Then
MsgBox "panier plein"
Else
'on suppose qu'il y a une donnée en A12
.Cells(lig, 1).Select
.Paste
End If
End With
MonClasseur.Activate
'Set MonClasseur = Nothing
End Sub
0
nikoEH Messages postés 64 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 28 juin 2012 7
9 mai 2008 à 14:28
Merci pour ta réponse.

Je viens d'essayer mais il y a quelque chose qui marche pas... Je me penche la dessus...
0
nikoEH Messages postés 64 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 28 juin 2012 7
9 mai 2008 à 14:36
C'est apparemment sur cette ligne qui a un soucis ...

lig = .Range("65536").End(xlUp).Row

Je ne comprend pas très bien a quoi elle sert d'ailleurs...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
9 mai 2008 à 16:42
Oups!
Excuses moi

lig = .Range("A65536").End(xlUp).Row

Cette instruction te donne le numéro de la dernière ligne utilisée dans la colonne A

N'hésites pas au cas où, comme je n'ai pas testé...

Michel
0