XL 2013 Boucle VBA pour faire un bon de commande

Maellou47

XLDnaute Nouveau
Bonjour

j'ai besoin de votre aide pour faire un boucle,

J'aimerai qu'elle regarde si la cellule n'est pas vide.
si la cellule ne l'est pas, elle copie le texte de la cellule dans une autre cellule d'une autre feuille, puis passe sur la cellule d'en dessous et si cette deuxième cellule n'est pas vide elle copie le texte de cette deuxième cellule dans la cellule en dessous de l'autre cellule de l'autre feuille...ect (sachant que les cellule à copier se trouve de A16 à A33 et se trouve sur la feuille 6 et la copie doit se faire sur la feuille 8).

Sinon si elle est vide,
Rien ne se copie

Merci de bien vouloir m'aider =)
 
Dernière modification par un modérateur:

CPk

XLDnaute Impliqué
Re : Boucle VBA pour faire un bon de commande

Si avant cela fonctionnait et qu'après cela ne fonctionne plus, c'est que vous avez apporté des changements dans votre fichier original qui nécessite d'adapter la macro.

Le fichier joins sans le "+0" fonctionne parfaitement et il n'y a pas la ligne en erreur que vous avez vous (le motif est très certainement que le fichier test ne comporte pas la/les modifications que vous apportez au fichier original


Autre demande,
le fichier "tableau de commande" est un fichier simplement de test ?
Parce que si tout va être gerer a partir du fichier "commande" il est préférable qu'on travaille sur un seul et même fichier de façon à avoir une macro qui ne bug pas
 

Pièces jointes

  • commande.xlsm
    269.9 KB · Affichages: 39
  • commande.xlsm
    269.9 KB · Affichages: 39
Dernière modification par un modérateur:

CPk

XLDnaute Impliqué
Re : Boucle VBA pour faire un bon de commande

Du coup je travaille sur un seul fichier (j'ai intégré la feuille "bon de commande") dans le fichier "commande" mais une question se pose à moi:

les données "Fournisseur, demandeur et utilisateur" doivent être renvoyées dans quelles cases du bon de commande ?
 

Maellou47

XLDnaute Nouveau
Re : Boucle VBA pour faire un bon de commande

Bonjour, et encore une fois merci pour le temps que vous consacrez à m'aider.
Je pense avoir compris pourquoi il me demande un débogage... C'est quand je ne met pas de frais de port, pensez vous qu'il serait possible de modifier la maccro pour qu'il ne me demande pas de faire un débogage quand il n'y a pas de frais de port car nous ne connaissons pas tous les frais de port de chaque fournisseur donc il se peut que quelque fois la case A35 du bon de commande soit vide...
 

Maellou47

XLDnaute Nouveau
Re : Boucle VBA pour faire un bon de commande

non c'est le fichier "commande" le fichier test, le fichier tableau de commande est celui que j'utilise actuellement car j'y ai rajouté la feuille "produit à commander".
En faite lorsque la personne veut commander quelque chose, elle va le mettre dans le tableau de la feuille produit à commander (et elle va faire cela tout le long de la semaine) puis à la fin de la semaine elle va faire tous ses bons de commande.

Il faudrait faire une boucle qui me permette de rentrer les données du tableau de la feuille "produits à commander" dans le bon de commande. Et que lorsque 2 produits ont le même demandeur ET le même fournisseur, ils se mettent sur le même bon de commande.
Je pensai faire un bouton qui me permette que quand j'appuie dessus, un bon de commande se fait puis la ligne du tableau "produit à commander" correspondant à ce produit se supprime de ce tableau...
Je ne sais pas si c'est faisable....
 
Dernière modification par un modérateur:

Bebere

XLDnaute Barbatruc
Re : Boucle VBA pour faire un bon de commande

bonjour
bienvenue Maellou
essaye ce code
Sub RemplirBonCommande()
Dim tbl, i As Long, l As Long, d, Clé, CléBase, Indice As Long, Ligne As Long, Produit
tbl = Feuil8.Range("A1").CurrentRegion
l = 15
Set d = CreateObject("scripting.dictionary")
For i = 2 To UBound(tbl)
CléBase = Feuil6.Range("A5") & Feuil6.Range("A8")
Clé = CléBase
Indice = 1
Do While d.exists(Clé)
Clé = CléBase & Indice
Indice = Indice + 1
Loop
d(Clé) = i
Next i
CléBase = Feuil6.Range("A5") & Feuil6.Range("A8")
Clé = CléBase
Indice = 1
Do While d.exists(Clé)
Ligne = d(Clé)
If Produit <> tbl(Ligne, 9) Then l = l + 1
Feuil6.Range("A" & l) = tbl(Ligne, 9) 'produit
Feuil6.Range("E" & l) = tbl(Ligne, 11) 'ref
Feuil6.Range("F" & l) = Feuil6.Range("F" & l) + tbl(Ligne, 10) 'q
Feuil6.Range("G" & l) = Feuil6.Range("G" & l) + tbl(Ligne, 7) 'montant
Produit = tbl(Ligne, 9)
Clé = CléBase & Indice
Indice = Indice + 1
Loop
End Sub
 

Maellou47

XLDnaute Nouveau
Re : Boucle VBA pour faire un bon de commande

Bonjour, merci pour votre réponse, ça marche mais ça ne fait pas ce que je veux....
moi je veux : "Il faudrait faire une boucle qui me permette de rentrer les données du tableau de la feuille "produits à commander" dans le bon de commande. Et que lorsque 2 produits ont le même demandeur ET le même fournisseur, ils se mettent sur le même bon de commande."
En plus les quantité ne se mettent pas correctement...
Merci quand même!!! =)
 

Lone-wolf

XLDnaute Barbatruc
Re : Boucle VBA pour faire un bon de commande

Bonjour à tous,

@Maellou, pourquoi ouvrir deux postes ou plus??? Tu aurais peu faire t'as demande ici.

Personnellement, je ne comprends pas pourquoi il y en a qui aiment faire le travail à double, voir plus. :confused:


A+ :cool:
 

Discussions similaires

Réponses
0
Affichages
157

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro