Le code ci-dessous me permet de sauvegarder des factures au format ".txt" et
de les rappeler à la demande dans une mise en forme modèle.
Le problème que je rencontre est que, lorsque je force la saisie d'un ou de
plusieurs produits dans la CheckBox de la Userform de saisie, les produits
forcés ne sont pas rappelés en cas de besoin.
Si je ne force pas la saisie et que je laisse les produits de la liste, il
n'y a pas de souci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jipé
Désolé, j'avais oublié de joindre le code.
Sub Enregistrement()
Dim Ligne As Long Ligne = Sheets("RelevéGénéral").Range("M65536").End(xlUp).Row + 1 Sheets("RelevéGénéral").Range("M" & Ligne & ":Q" & Ligne).Value Sheets("Facture").Range("AA1:AE1").Value
Dim Nom_Client$, NumFact$, Rangement$ Dim Plage As Range, cell As Range, FichTxt$
'attention : ce test (comme le précedent) 'suppose que C:Mes Factures existe If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'** Set Plage = Union(Range("G9"), Range("B16"), Range("C18:C23"), _ Range("A28:H55"), Range("G58:G60"), _ Range("F15:F18"), Range("F21")) '**(tu peux aussi nommer la plage des données à sauvegarder) Open FichTxt For Output As 1 For Each cell In Plage Print #1, cell.Address & "=" & cell.Text Next Close End Sub
Sub RappelFacture()
Dim FichTxt, S, Data ChDrive "C" ChDir "C:Mes Factures" FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt") If FichTxt = False Then Exit Sub 'ActiveSheet.Unprotect Open FichTxt For Input As 1 While Not EOF(1) Line Input #1, S Data = Split(S, "=")(1) If IsDate(Split(S, "=")(1)) Then Data = CDate(Data) Range(Split(S, "=")(0)).Value = Data 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Wend Close End Sub 'fs
Désolé, j'avais oublié de joindre le code.
Sub Enregistrement()
Dim Ligne As Long
Ligne = Sheets("RelevéGénéral").Range("M65536").End(xlUp).Row + 1
Sheets("RelevéGénéral").Range("M" & Ligne & ":Q" & Ligne).Value Sheets("Facture").Range("AA1:AE1").Value
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("G9"), Range("B16"), Range("C18:C23"), _
Range("A28:H55"), Range("G58:G60"), _
Range("F15:F18"), Range("F21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub RappelFacture()
Dim FichTxt, S, Data
ChDrive "C"
ChDir "C:Mes Factures"
FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt")
If FichTxt = False Then Exit Sub
'ActiveSheet.Unprotect
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Wend
Close
End Sub 'fs
Dim Ligne As Long Ligne = Sheets("RelevéGénéral").Range("M65536").End(xlUp).Row + 1 Sheets("RelevéGénéral").Range("M" & Ligne & ":Q" & Ligne).Value Sheets("Facture").Range("AA1:AE1").Value
Dim Nom_Client$, NumFact$, Rangement$ Dim Plage As Range, cell As Range, FichTxt$
'attention : ce test (comme le précedent) 'suppose que C:Mes Factures existe If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'** Set Plage = Union(Range("G9"), Range("B16"), Range("C18:C23"), _ Range("A28:H55"), Range("G58:G60"), _ Range("F15:F18"), Range("F21")) '**(tu peux aussi nommer la plage des données à sauvegarder) Open FichTxt For Output As 1 For Each cell In Plage Print #1, cell.Address & "=" & cell.Text Next Close End Sub
Sub RappelFacture()
Dim FichTxt, S, Data ChDrive "C" ChDir "C:Mes Factures" FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt") If FichTxt = False Then Exit Sub 'ActiveSheet.Unprotect Open FichTxt For Input As 1 While Not EOF(1) Line Input #1, S Data = Split(S, "=")(1) If IsDate(Split(S, "=")(1)) Then Data = CDate(Data) Range(Split(S, "=")(0)).Value = Data 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Wend Close End Sub 'fs