Panier pour bon de commande

nikoEH Messages postés 64 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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 Statut Membre 7
 
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 Statut Membre 7
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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