Commande et facturation par double click
Bonjour bonjour,
Ci-joint mon fichier de commande automatisé par double click qu'une personne bienveillante de ce forum m'a apportée déjà plein de solution.
De l'onglet "COMPL. ALIM. 20%" je double click sur un article et une fenêtre s'ouvre pour me demander le nombre d'article qui incrémente automatiquement l'onglet "COMMANDE"
J'ai depuis rajouté un onglet "FACTURE" et souhaiterai faire la même chose ; j'ai rajouté sur le premier onglet 2 cellules avec "OUI" et "NON" car je pensais pouvoir modifier le code par rapport à la cellule N5 de l'onglet "COMPL. ALIM. 20%" mais ni arrive pas ; tantot le fichier fonctionne en commande, tantot en facture !!!
Je suis encore dans l'impasse
Peut être y a t'il une autre solution plus simple ???
Je vous remercie une nouvelle fois par avance pour votre disponibilité.
@ toute
Bonjour
Pourquoi ne pas faire des simples formules pour obtenir votre facture,
en effet, une fois que votre commande est faite, vous pouvez basculer votre commande sur votre facture.
A19 (facture)= =COMMANDE!F4 et ainsi de suite.
Solution simple et rapide et qui colle parfaitement à votre commande.
Cdlt
Bonsoir,
Merci mais non désolé pas possible, je veux bien faire deux choses distinctes ; je ne commande pas forcément ce que je facture !
Je pense avoir trouvé comment faire, je galère juste sur les déplacements de cellules, mais je touche au but.
Merci
Bonsoir,
J'ai avancé mais ne connaissant pas les fondamentaux du placement et déplacement en VBA je galère pour positionner ma première ligne sur l'onglet facture [A19] et ça me marque "Facture pleine" alors que j'ai placé cette alerte en ligne 19 ????
Un coup de main serait vraiment bienvenue
Private Sub TextBox1_Change()
If TextBox1 = "" Then
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Else
[_FilterDataBase].AutoFilter Field:=1, Criteria1:="=*" & TextBox1 & "*", Operator:=xlAnd
End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim qte As Single, lig As Long
If Sheets("COMPL. ALIM. 20%").[N5] = "OUI" Then
If Target.Column = 3 And Target.Row > 9 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous commander", , , , , , 1)
If qte > 0 Then
With Sheets("COMMANDE")
lig = .Cells(Rows.Count, 3).End(xlUp).Row + 1
If lig > 29 Then
MsgBox "Bon de commande complet"
Else
.Cells(lig, 3).Value = Target
.Cells(lig, 4).Value = Target.Offset(, 1)
.Cells(lig, 5).Value = Target.Offset(, 2)
.Cells(lig, 6).Value = qte
'.Cells(lig, 8).Value = Target.Offset(, 10)
End If
End With
If lig = 23 Then MsgBox "Bon de commande complet"
End If
End If
End If
If Sheets("COMPL. ALIM. 20%").[N5] = "NON" Then
If Target.Column = 3 And Target.Row > 9 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous facturer ?", , , , , , 1)
If qte > 0 Then
With Sheets("FACTURE")
lig = .Cells(Rows.Count, 3).End(xlUp).Row + 1
If lig > 29 Then
MsgBox "Facture complète"
Else
.Cells(lig, 1).Value = qte
.Cells(lig, 2).Value = Target
.Cells(lig, 4).Value = Target.Offset(, 5)
End If
End With
If lig = 53 Then MsgBox "Facture complète"
End If
End If
End If
End Sub
Je crois bien que je m’emmêle plus rien ne fonctionne, je recommence depuis le début
@ tout à l'heure...
Me revoilà donc !
Je n'avance toujours pas, je n'arrive toujours pas à cibler la bonne cellule dans l'onglet facture et si je règle le maxi à 29 lignes toujours sur l'onglet facture, je me retrouve avec le message commande complète
Help please
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim qte As Single, lig As Long
If Sheets("COMPL. ALIM. 20%").[N5] = "OUI" Then
If Target.Column = 3 And Target.Row > 3 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous commander", , , , , , 1)
If qte > 0 Then
With Sheets("COMMANDE")
lig = .Cells(Rows.Count, 3).End(xlUp).Row + 1
If lig > 53 Then
MsgBox "Bon de commande complet"
Else
.Cells(lig, 3).Value = Target
.Cells(lig, 4).Value = Target.Offset(, 1)
.Cells(lig, 5).Value = Target.Offset(, 2)
.Cells(lig, 6).Value = qte
'.Cells(lig, 8).Value = Target.Offset(, 10)
End If
End With
End If
If lig = 53 Then MsgBox "Bon de commande complet"
End If
End If
If Sheets("COMPL. ALIM. 20%").[N5] = "NON" Then
If Target.Column = 3 And Target.Row > 3 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous facturer ?", , , , , , 1)
If qte > 0 Then
With Sheets("FACTURE")
lig = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If lig > 29 Then
MsgBox "Bon de commande complet"
Else
.Cells(lig, 1).Value = qte
.Cells(lig, 2).Value = Target
.Cells(lig, 4).Value = Target.Offset(, 5)
End If
End With
End If
If lig = 29 Then MsgBox "Facture complette"
End If
End If
End Sub
Bonjour,
en regardant le code, la var lig est le n° de ligne non vide 'le plus bas' de la colonne A, + 1.
Avec le débogueur pas à pas, je vois lig = 44.
C'est parce que les cellules A 31 et A 43 ne sont pas vides.
Déplacez le contenue de ces lignes d'une colonne vers la droite, et tout fonctionne parfaitement.
sinon, je joins un exemple, avec une colonne et une ligne masquées, si l'idée peut inspirer.
Bonjour Taihii,
Merci beaucoup pour ces explications, mais pas moyen de placer cette fichue première ligne en A19..... Grrrrr
Je m'y replonge
Bon, je sais, ce n'est pas propre mais ne trouvant toujours pas, avec beaucoup de regrets, j'ai créé 2 colonnes A et B que je cacherai et que j'effacerai.
Mais je suis toujours preneur pour une solution "propre"
Bien à vous
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim qte As Single, lig As Long
If Sheets("COMPL. ALIM. 20%").[N5] = "OUI" Then
If Target.Column = 3 And Target.Row > 9 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous commander", , , , , , 1)
If qte > 0 Then
With Sheets("COMMANDE")
lig = .Cells(Rows.Count, 3).End(xlUp).Row + 1
If lig > 53 Then
MsgBox "Bon de commande complet"
Else
.Cells(lig, 3).Value = Target
.Cells(lig, 4).Value = Target.Offset(, 1)
.Cells(lig, 5).Value = Target.Offset(, 2)
.Cells(lig, 6).Value = qte
'.Cells(lig, 8).Value = Target.Offset(, 10)
End If
End With
If lig = 53 Then MsgBox "Bon de commande complet"
End If
End If
End If
If Sheets("COMPL. ALIM. 20%").[N5] = "NON" Then
If Target.Column = 3 And Target.Row > 9 And Target <> "" Then
Cancel = True
qte = Application.InputBox(Target & " " & "/ PU HT Net = " & " " & Format(Target.Offset(, 5), "#.00" & " " & "€"), "Quelle quantité voulez-vous facturer ?", , , , , , 1)
If qte > 0 Then
With Sheets("FACTURE")
lig = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If lig > 29 Then
MsgBox "Facture complète"
Else
.Cells(lig, 1).Value = qte
.Cells(lig, 3).Value = qte
.Cells(lig, 4).Value = Target
.Cells(lig, 7).Value = Target.Offset(, 5)
End If
End With
If lig = 29 Then MsgBox "Facture complète"
End If
End If
End If
End Sub
Bonjour, je pense qu'il serais plus simple d'exporter la commande en facture avec un filtre élaboré.
Bonne journée a tous et toutes.
Bonjour Bruno,
Non désolé, je ne facture pas ce que je commande !
J'ai des clients, et des fournisseurs, les deux ne sont donc pas liés.
Je fais mes commandes tous les mois pendant l'inventaire à ms fournisseurs, et établie mes factures quotidiennement.
Cela fonctionne bien, mais le souci est de me positionner sur ma première ligne sans triche, puis que les prochaines lignes se mettent dessous jusqu'à la dernière ligne.
Merci tout de même.
@ toute...
dasaquit a écrit :Bonjour Taihii,
Merci beaucoup pour ces explications, mais pas moyen de placer cette fichue première ligne en A19..... Grrrrr
Je m'y replonge
voici avec les cellules déplacées, et un bouton pour la sélection commande / facture.