Remplir un bon de commande

  • Initiateur de la discussion Initiateur de la discussion degap05
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

degap05

XLDnaute Impliqué
Bonjour le forum,

J'ai besoin d'aide pour réaliser un bon de commande simple à partir d'une liste de références.
Les lignes à commander sont cochées, puis envoyées vers le récapitulatif à la validation.

Merci.
 

Pièces jointes

Re : Remplir un bon de commande

bonjour degap05,

je te propose cette macro :
Code:
Private Sub CommandButton1_Click()
Dim shtSrc As Worksheet, shtDest As Worksheet, i As Integer, lastLine As Integer
Set shtSrc = ThisWorkbook.Sheets("Dot")
Set shtDest = ThisWorkbook.Sheets("Cde")
'effacer les saisie dans la feuille "Cde"
shtDest.Range(shtDest.Range("A4"), shtDest.Range("A4").End(xlToRight).End(xlDown)).ClearContents
lastLine = shtDest.Range("A" & shtDest.Rows.Count).End(xlUp).Row + 1
'boucler sur les éléments de la feuille "Dot"
For i = 3 To shtSrc.Range("D" & shtSrc.Rows.Count).End(xlUp).Row
    If UCase(shtSrc.Range("D" & i)) = "X" Then
        shtDest.Range("A" & lastLine).Value = shtSrc.Range("A" & i).Value
        shtDest.Range("B" & lastLine).Value = shtSrc.Range("B" & i).Value
        shtDest.Range("C" & lastLine).Value = shtSrc.Range("C" & i).Value
        lastLine = lastLine + 1
    End If
Next i
shtSrc.Range("D3:D60").ClearContents
shtSrc.Range("F2") = Now
End Sub

a+
 
Re : Remplir un bon de commande

Salut Degap05, Romain🙂, Le Forum,

la même chose un tout petit peu plus court 😉

Code:
Private Sub CommandButton1_Click()
Dim C As Range
Sheets("Cde").Range("A5:C100").ClearContents
For Each C In Range("A3:D60") [COLOR=Green]' Peut être amélioré[/COLOR]
    If C = "X" Then
        With Sheets("Cde").Range("A65536").End(xlUp)
            .Offset(1, 0) = C.Offset(0, -3)
            .Offset(1, 1) = C.Offset(0, -2)
            .Offset(1, 2) = C.Offset(0, -1)
        End With
    End If
Next C
Range("D3:D60").ClearContents
Range("F2") = Now()
End Sub
Bonne Journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
361
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
224
Réponses
32
Affichages
975
Retour