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.

17classeur1.xlsm (28.60 Ko)

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.

Rechercher des sujets similaires à "commande facturation double click"