Microsoft 365 Zéro Perdu

Electron24

XLDnaute Occasionnel
Bonjour le Forum,

Une fois de plus, je fais appel à vos connaissances.
Dans la colonne B de B3 à B100 j'ai la réf du client en 3 chiffres. 001, 002, 003 etc....
J'ai formaté mes cellules en format/Personnalisé et 00##
Cela fonctionne très bien jusqu'au client 9 (009) au dixième j'ai 0010
Hors je souhaiterai n'avoir que 3 chiffres pour raison pratique dans un formulaire.
Comment y parvenir ?
De plus, lorsque je récupère la réf du client (ex 005) dans un textbox , je perds les zéros et je me retrouve avec (5) au lieu de (005)
Je sais qu'Excel supprime par défaut les zéros non significatif, mais existe t il une formule pour les intégrer dans le textbox d'un formulaire ?
Merci d'avance pour votre aide.
 

Pièces jointes

  • Modèle.xlsm
    421.7 KB · Affichages: 3
Dernière édition:

fanfan38

XLDnaute Barbatruc
Tu ne dis pas dans quel userform tu as des soucis ...
Donc ma réponse est aussi vague que ta question
Dans le combobox qui te pose problème tu clic sur le textbox qui te pose soucis
Dans la macro tu mets
me.le nom de ton textbox.value=format(le textbox,"000"
A+ François
 

Electron24

XLDnaute Occasionnel
Un grand merci fanfan38,grâce à vous j'ai trouvé la solution. tout fonctionne parfaitement.
Voici le code du Formulaire "Frm_Clients :
VB:
'   **************************************************
'   *****   Code Formulaire Frm_Clients     *****
'   **************************************************

Private Sub UserForm_Initialize()

' Remplissage de la ListBox Cmb_Client
    With Sheets("Clients")
    For i = 3 To 1000
    Cmb_Client.AddItem .Range("D" & i)
    Next i
    End With
    
    Txt_ID = Format(Range("Y85"), "000")
    
End Sub

Private Sub Cmb_Client_AfterUpdate()

' remplissage des données dans la feuille Facture (Z86 à Z90)
    Range("Y86") = Cmb_Client
    
End Sub

Private Sub Txt_ID_Change()
   Txt_ID = Format(Txt_ID, "000")
End Sub

Private Sub Btn_Ok_Click()

' remplissage des données saisie
    Txt_ID = Val(Format(Range("Y85"), "000"))
    Txt_Nom_Client = Range("Y86").Value
    Txt_Prenom_Client = Range("Y87").Value
    Txt_Adresse_Client = Range("Y88").Value
    Txt_CP_Client = Range("Y89").Value
    Txt_Ville_Client = Range("Y90").Value
    Txt_Tel_Client = Range("Y91").Value
    Txt_Fax_Client = Range("Y92").Value
  
End Sub

Private Sub Bouton_Annuler_Click()

        vRéponse = MsgBox("Voulez-vous vraiment quitter ?", vbYesNo + vbInformation, "Information.")
    If vRéponse = vbNo Then Exit Sub
    
        Unload Frm_Clients

End Sub

Private Sub Btn_Effac_Client_Click()

Sheets("Facture").Select

' Vérification si données existes
    If [T75] = 0 Then
        MsgBox "Les données sont déjà effacées !", vbOKOnly + vbInformation, "INFOS."
    Else
' Demande de confirmation d'effacement de la facture en cours.

    Reponse = MsgBox("Désirez vous effacer " & Chr(10) & "les données du client " _
    & Chr(10) & [E14] & "  " & [H14], vbYesNo + vbQuestion, "Votre choix :")

Select Case Reponse
Case vbYes
        ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
        [E14] = ""          ' Efface le Nom du Client
        [H14] = ""          ' Efface le Préom du Client
        [E15] = ""          ' Efface l'adresse du Client
        [E16] = ""          ' Efface le Code Postal du Client
        [G16] = ""          ' Efface la Ville du Client
        [K16] = ""          ' Efface le Pays du Client
        [E17] = ""          ' Efface le Tél du Client
        [H17] = ""          ' Efface le Fax du Client

Case vbNo
Exit Sub
    End Select
        End If
End Sub

Private Sub Bouton_Valider_Click()

' Le contenu des zones de texte (Text...) est récupéré dans les variables (v...).
        vNomClient = Trim(Txt_Nom_Client)
        vPrénomClient = Trim(Txt_Prenom_Client)
        vAdresseClient = Trim(Txt_Adresse_Client)
        vVilleClient = Trim(Txt_Ville_Client)
        vCPClient = Val(Txt_CP_Client)
        vTélClient = Trim(Txt_Tel_Client)
        vFaxClient = Trim(Txt_Fax_Client)

' Vérification de la saisie du nom.
    If Trim(Txt_Nom_Client) = "" Then
        MsgBox "Il manque le nom du client !", vbOKOnly + vbInformation, "Erreur..."
        Txt_Nom_Client.SetFocus
    Exit Sub
    End If
    
' Vérification de la saisie du Prénom.
    If Trim(Txt_Prenom_Client) = "" Then
        MsgBox "Il manque le prénom du client !", vbOKOnly + vbInformation, "Erreur..."
        Txt_Prenom_Client.SetFocus
    Exit Sub
    End If
    
' Vérification de la saisie de l'adresse.
    If Trim(Txt_Adresse_Client) = "" Then
        MsgBox "Il manque l'adresse !", vbOKOnly + vbInformation, "Erreur..."
        Txt_Adresse_Client.SetFocus
    Exit Sub
    End If
    
' Vérification de la saisie de la ville.
    If Trim(Txt_Ville_Client) = "" Then
        MsgBox "Il manque la ville !", vbOKOnly + vbInformation, "Erreur..."
        Txt_Ville_Client.SetFocus
    Exit Sub
    End If
    
' Vérification du code postal.
    If Trim(Txt_CP_Client) = "" Then
        MsgBox "Il manque le code postal !", vbOKOnly + vbInformation, "Erreur..."
        Txt_CP_Client.SetFocus
   Exit Sub
   End If
  
' Vérification de la saisie du numérique du code postal.
    If Not IsNumeric(Txt_CP_Client) Then
        MsgBox "Le code postal doit comporter un nombre.", vbOKOnly + vbInformation, _
        "Erreur..."
        Txt_CP_Client = ""
        Txt_CP_Client.SetFocus
    Exit Sub
    End If
    
' Routine ValiderDonnées se trouvant dans le module ModAdresseClient.
    ValiderDonnéesClients

End Sub

Private Sub Btn_Ville_Click()

    Frm_CP.Show
    
End Sub

Private Sub Btn_New_Click()

    Unload Frm_Clients
    Frm_New_Clients.Show

End Sub

Et celui du formulaire "Frm_Recup_Doc":

Code:
'   **************************************************
'   ******     Code Formulaire Frm_Récap_Doc      ******
'   **************************************************

Private Sub UserForm_Initialize()
Dim Type_Feuil As String

' Récupération des données dans la feuille Facture.
    Sheets("Facture").Select
    
    Saisie_Type_Feuil = Format(Range("o4"), "000")
        Frm_Recap_Doc.Saisie_Type_Feuil.AddItem Trim([O4].Value)
        
        Saisie_Id_Client = Range("Z85").Value
        Saisie_Réf_Com = Range("Réf_Com").Value
        Saisie_Time = Time
        Saisie_Date1 = Trim(Format([N14].Value, "ddd-dd-mmm-yy"))
        Saisie_Date2 = Trim(Format([L72].Value, "ddd-dd-mmm-yy"))
        Saisie_Tél = Trim(Format([E17].Value, "00"" ""00"" ""00"" ""00"" ""00"))
        Saisie_Fax = Trim(Format([H17].Value, "00"" ""00"" ""00"" ""00"" ""00"))
        Saisie_HT = [T56]
        Saisie_TVA = [T62]
        Saisie_TTC = [T63]
        Saisie_Acompte = [T64]
        Saisie_Réf_Acompte = [I58]
        Saisie_Date_Acomp = Trim(Format([K58].Value, "dd-mm-yy"))
        Saisie_Reste_Du = [T65]
        Saisie_Solde_Par = [N69]
        Saisie_Date_Solde = Trim(Format([L72].Value, "dd-mm-yy"))
        
    If [S40] = "Devis" Then
        TextNumFacture.Caption = "N° du Devis :"
        TextDateFacture.Caption = "Date du Devis :"
        TextRéfCom.Caption = "Objet du Devis :"
        TextDétailFact.Caption = "Détail du Devis :"
    End If
    
        If [S40] = "Facture" Then
        TextNumFacture.Caption = "N° de Facture :"
        TextDateFacture.Caption = "Date de la Facture :"
        TextRéfCom.Caption = "Objet de la Facture :"
        TextDétailFact.Caption = "Détail de la Facture :"
    End If
    
End Sub

Private Sub BoutonAnnuler_Click()

        Unload Me
    
End Sub

Private Sub BoutonValider_Click()
Dim Type_Feuil As String
Dim la_ligne As Long: Dim nom_fichier As String
Dim lid As Integer: Dim num_com As Long: Dim Num_Fact As String


    Sheets("Facture").Select
    
        'vNumFact = Range("O4")
        vNumFact = Saisie_Type_Feuil
        vCommandeFac = Saisie_Réf_Com
        vDate1Fac = Trim(Saisie_Date1)
        vHeure = Trim(Saisie_Time)
        vNomClientFact = Trim(Saisie_Nom_Client) & " " & Trim(Saisie_Prenom_Client)
        vHTFact = Trim(Saisie_HT)
        vTTCFact = Trim(Saisie_TTC)
        vTVAFact = Trim(Saisie_TVA)
      
' Détection de la Facture ou Devis
    If [U34] = 1 Then
        [W20] = "Oui"
    End If

    If [U36] = 1 Then
        [W21] = "Oui"
    End If
    
' Détection d'une Facture ou d'un Devis
    If [U34] = 1 Then
        Sheets("Save Devis").Select    ' Sélection de la feuille Save Devis.
        nom_fichier = Format(Saisie_Id_Client, "000") & "_" & "Devis_" & vNumFact & ".pdf"
        Type_Feuil = "Devis_"
        GoTo Données
    End If

    If [U36] = 1 Then
        Sheets("Save Facture").Select    ' Sélection de la feuille Save Facture.
        nom_fichier = Format(Saisie_Id_Client, "000") & "_" & "Fact_" & vNumFact & ".pdf"
        Type_Feuil = "Fact_"
        GoTo Données
    End If

Données:
' Sélection de la première cellule vide dans la colonne B.
    If ActiveSheet.[B4] = "" Then
        ActiveSheet.[B4].Select
    Else
        ActiveSheet.Range("B3").End(xlDown).Offset(1, 0).Select
    End If
    ' Ecriture des données dans la première rangée vide.

    With ActiveCell
            .Value = Type_Feuil & vNumFact
            .Offset(0, 1).Value = Format(Saisie_Id_Client, "000")
            .Offset(0, 2).Value = UCase(vNomClientFact)
            .Offset(0, 3).Value = vDate1Fac & " - " & Time    ' Now
            .Offset(0, 4).Value = vHTFact
            .Offset(0, 5).Value = vTVAFact
            .Offset(0, 6).Value = vTTCFact
            .Offset(0, 7).Value = nom_fichier
    End With
    
' Sélection de la première cellule vide dans la colonne B.
    If ActiveSheet.[B5] = "" Then
        ActiveSheet.[B5].Select
    Else
        ActiveSheet.Range("B4").End(xlDown).Offset(1, 0).Select
    End If

   MsgBox Saisie_Id_Client
    
 ' Sauvegarde du devis
    If [U34] = 1 Then
            MsgBox "Le devis N° " & vNumFact - 1 & " a bien été validé et archivé.", vbOKOnly + vbInformation, "Archivage devis réussie"
    End If

' Sauvegarde de la facture
    If [U36] = 1 Then
            MsgBox "La facture N° " & vNumFact - 1 & " a bien été validée et archivée.", vbOKOnly + vbInformation, "Archivage facture réussie"
    End If
    
       faire_facture num_com, nom_fichier  ' Recopie de la facture ou du devis dans la feuille Reflet

End Sub

Private Sub faire_facture(num_com As Long, nom_fichier As String)
    
    Application.ScreenUpdating = False
    MsgBox "J'archive"
' Détection d'une facture ou d'un devis
    Sheets("Facture").Select
    
    If [U34] = 1 Then
        nom_fichier = Range("Y85") & "_" & "Devis_" & vNumFact & ".pdf"
    End If
    
    If [U36] = 1 Then
        nom_fichier = Range("Y85") & "_" & "Fact_" & vNumFact & ".pdf"
        'nom_fichier = Sheets("Facture").Range("O4") & "_" & "Fact_" & vNumFact & ".pdf"
    End If
    
    
    Sheets("Reflet").Select
    Sheets("Reflet").Range("D20:O55").Clear ' = ""      ' Effacement de la commande
    Sheets("Reflet").Range("E57:L64") = ""              ' Effacement condition de paiement
    Sheets("Reflet").Range("O56:O66").Clear ' = ""      ' Effacement du calcul
    Sheets("Reflet").Range("N69") = ""                  ' Effacement du solde
    Sheets("Reflet").Range("J72:N72") = ""              ' Effacement de la date

' Copie des commandes
    Sheets("Facture").Select
    Range("D20:O55").Select
    Range("D20:O55").Copy
    Sheets("Reflet").Select
    Range("D20").Select
    ActiveSheet.Paste
    Range("D12").Select
    Application.CutCopyMode = False
    
' Copie des calcul Montant de la facture
    Sheets("Facture").Select
    Range("O56:O66").Copy
    Sheets("Reflet").Select
    Range("O56").Select
    Range("O56:O66").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C12").Select
    
    Mise_en_Forme
    
' Copie moyen paiement
    Sheets("Facture").Select
    Range("E57:L64").Select
    Range("E57:L64").Copy
    Sheets("Reflet").Select
    Range("E57").Select
    Range("E57:L64").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("D57").Select
    
' Copie du solde
    Sheets("Facture").Select
    Range("N69").Select
    Range("N69").Copy
    Sheets("Reflet").Select
    Range("N69").Select
    Range("N69").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
' Copie date
    Sheets("Facture").Select
    Range("J72:N72").Select
    Range("J72:N72").Copy
    Sheets("Reflet").Select
    Range("J72:K72").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

' Effacement des données Client
    Sheets("Reflet").Range("O4").Value = ""
    Sheets("Reflet").Range("E14").Value = ""
    Sheets("Reflet").Range("H14").Value = ""
    Sheets("Reflet").Range("E15").Value = ""
    Sheets("Reflet").Range("E16").Value = ""
    Sheets("Reflet").Range("G16").Value = ""
    Sheets("Reflet").Range("E17").Value = ""
    Sheets("Reflet").Range("H17").Value = ""

' Effacement des données Société
    Sheets("Reflet").Range("N14").Value = ""
    Sheets("Reflet").Range("N15").Value = ""
    Sheets("Reflet").Range("N16").Value = ""
    Sheets("Reflet").Range("N17").Value = ""

' Copie des données Client
    Sheets("Reflet").Range("O4").Value = Sheets("Facture").Range("O4").Value        ' Numéro de la facture ou du devis
    Sheets("Reflet").Range("E14").Value = Sheets("Facture").Range("E14").Value      ' Nom du client
    Sheets("Reflet").Range("H14").Value = Sheets("Facture").Range("H14").Value      ' Prénom du client
    Sheets("Reflet").Range("E15").Value = Sheets("Facture").Range("E15").Value      ' Adresse du client
    Sheets("Reflet").Range("E16").Value = Sheets("Facture").Range("E16").Value      ' CP du client
    Sheets("Reflet").Range("G16").Value = Sheets("Facture").Range("G16").Value      ' Ville du client
    Sheets("Reflet").Range("E17").Value = Sheets("Facture").Range("E17").Value      ' Tèl du client
    Sheets("Reflet").Range("H17").Value = Sheets("Facture").Range("H17").Value      ' Fax du client
    
' Copie des données Société
    Sheets("Reflet").Range("N14").Value = Sheets("Facture").Range("N14").Value      ' Date de création de la facture ou du devis
    Sheets("Reflet").Range("N15").Value = Sheets("Facture").Range("N15").Value      ' Type de travail effectué
    Sheets("Reflet").Range("N16").Value = Sheets("Facture").Range("N16").Value      ' Responsable du chantier
    Sheets("Reflet").Range("N17").Value = Sheets("Facture").Range("N17").Value      ' FAB lieu de dépot des marchandises
 
     MsgBox "La commande a bien été validée." & Chr(10) & "Le fichier référencé: " & nom_fichier _
     & " a été archivé. ", vbOKOnly + vbInformation, "Validation et Archivage réussie"
 
    Sheets("Reflet").Select
    Range("C12").Select
    
    ligne = 80
    
'Editer en PDF
    ActiveSheet.PageSetup.PrintArea = "C3:R" & ligne + 1
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ThisWorkbook.Path & "\archives\" & nom_fichier _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True

' Incrémentation de la Facture ou du Devis
    Sheets("Facture").Select
    If [U34] = 1 Then
        PlusDev
    End If

    If [U36] = 1 Then
        PlusFac
    End If
    Range("C12").Select

    Application.ScreenUpdating = True
    
End Sub
 

Electron24

XLDnaute Occasionnel
Bonjour le Forum,
J'ai un autre petit souci :
J'ai 1 liste déroulante dans la feuille"Save Facture" et une autre dans la feuille "Save Devis" qui reprennent les clients ayant une facture ou un devis.
Je souhaiterai dans la feuille "Gestion" remplir la liste déroulante en E6 selon le critère de la liste déroulante "Type de feuille" en C6.
Est ce possible si oui, merci de m'aider.
Cordialement
PS: Je remets le fichierr avec les corrections que j'ai effectuées grace à Fanfan38 que je remercie une fois encore.
 

Pièces jointes

  • Modèle.xlsm
    433.6 KB · Affichages: 2

Discussions similaires

Réponses
3
Affichages
1 K
Compte Supprimé 979
C