Excel (vba) - Enregistrer avec conditions
Résolu
Brandysve
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
Bien le bonjour !
Dernièrement j'ai fais un petit fichier excel avec une macro qui ouvre une boite de dialogue demandant certaines informations, etc... Après ça, le fichier s'enregistre lui-même à un emplacement en fonction d'une valeur inscrite dans la cellule E1.
Cependant, ce numéro varie de 00001 à 15000 et les fichiers sont enregistré en fonction de cette données (soit 00001.xls - 15000.xls). Lorsque le fichier comporte des 0 devant des nombres, il n'en tient pas compte à l'enregistrement (ex. 09989 devient 9989.xls).
Du coup j'ai rajouté dans la macro d'enregistrer en "\0". Ce qui me donne un bon résultat pour tous les nombres inférieur à 10000 mais après quoi j'ai des 010000.xls.
Possibilité de mettre une condition if else qui détermine si le nombre est inférieur à 10000 mettre un 0 devant sinon rien mettre et enregistrer tel quel?
Merci à ceux qui prendront la patience de lire et m'aider à résoudre ce petit souci.
Brandysve
Ps : si besoin je peux fournir le code macro
Dernièrement j'ai fais un petit fichier excel avec une macro qui ouvre une boite de dialogue demandant certaines informations, etc... Après ça, le fichier s'enregistre lui-même à un emplacement en fonction d'une valeur inscrite dans la cellule E1.
Cependant, ce numéro varie de 00001 à 15000 et les fichiers sont enregistré en fonction de cette données (soit 00001.xls - 15000.xls). Lorsque le fichier comporte des 0 devant des nombres, il n'en tient pas compte à l'enregistrement (ex. 09989 devient 9989.xls).
Du coup j'ai rajouté dans la macro d'enregistrer en "\0". Ce qui me donne un bon résultat pour tous les nombres inférieur à 10000 mais après quoi j'ai des 010000.xls.
Possibilité de mettre une condition if else qui détermine si le nombre est inférieur à 10000 mettre un 0 devant sinon rien mettre et enregistrer tel quel?
Merci à ceux qui prendront la patience de lire et m'aider à résoudre ce petit souci.
Brandysve
Ps : si besoin je peux fournir le code macro
A voir également:
- Excel (vba) - Enregistrer avec conditions
- Audacity enregistrer son pc - Guide
- Liste déroulante excel - Guide
- Excel cellule couleur si condition texte - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
3 réponses
Bonjour,
tu peux tout à fait faire ca.
Tu as deux possibilités (car tout dépend de comment tu demandes à l'utilisateur de rentrer :
IF variable(1à15000) < 10000 then
variable = "\0" & variable
else
variable = variable
end if
ou alors
if len(variable) < 5 'si le nombre de caractèr einclus dans la variable variable = 5 (soit compris <10000 then
variable = "\0" & variable
end if
tu peux tout à fait faire ca.
Tu as deux possibilités (car tout dépend de comment tu demandes à l'utilisateur de rentrer :
IF variable(1à15000) < 10000 then
variable = "\0" & variable
else
variable = variable
end if
ou alors
if len(variable) < 5 'si le nombre de caractèr einclus dans la variable variable = 5 (soit compris <10000 then
variable = "\0" & variable
end if
Bonjour,
essaie comme ca :
Private Sub Workbook_Open()
Dim save_ener As String
UserForm1.Show
save_ener = Range("E1")
If save_ener < 10000 Then
save_ener = "\0" & save_ener
Else
save_ener = "\" & save_ener
End If
Range("A6").Select
fichier = "C:\Users\(caché)\En attente" & save_ener & ".xls"
ActiveWorkbook.SaveAs Filename:=fichier
End Sub
essaie comme ca :
Private Sub Workbook_Open()
Dim save_ener As String
UserForm1.Show
save_ener = Range("E1")
If save_ener < 10000 Then
save_ener = "\0" & save_ener
Else
save_ener = "\" & save_ener
End If
Range("A6").Select
fichier = "C:\Users\(caché)\En attente" & save_ener & ".xls"
ActiveWorkbook.SaveAs Filename:=fichier
End Sub
Même cela semble logique, ça ne fonctionne pas :/
Quand j'enregistre sous 10000 il met bien "09999.xls" mais quand je met plus de 10000, il me crée un fichier "Enattente11000.xls"
Voilà mes codes
1. La macro d'ouverture
2. Le Useform1
Merci de ton aide
Ps: Ta seconde solution n'est pas viable dans mon cas car il y 'a toujours 5 caractères (avant 10000 on écrit 09000 par exemple, cependant, dans la cellule ça se transforme, volontairement, en 09.000 et ça doit pas enregistrer avec le point))
Quand j'enregistre sous 10000 il met bien "09999.xls" mais quand je met plus de 10000, il me crée un fichier "Enattente11000.xls"
Voilà mes codes
1. La macro d'ouverture
Private Sub Workbook_Open()
Dim save_ener As String
UserForm1.Show
save_ener = Range("E1")
If save_ener < 10000 Then
save_ener = "\0" & save_ener
Else
save_ener = save_ener
End If
Range("A6").Select
fichier = "C:\Users\(caché)\En attente" & save_ener & ".xls"
ActiveWorkbook.SaveAs Filename:=fichier
End Sub
2. Le Useform1
Private Sub annuler_Click()
Unload UserForm1
End Sub
Private Sub CommandButton1_Click()
Range("E1") = Me.TextBox1.Value
Range("D2") = Me.TextBox2.Value
Range("B6") = Me.TextBox3.Value
Unload UserForm1
End Sub
Merci de ton aide
Ps: Ta seconde solution n'est pas viable dans mon cas car il y 'a toujours 5 caractères (avant 10000 on écrit 09000 par exemple, cependant, dans la cellule ça se transforme, volontairement, en 09.000 et ça doit pas enregistrer avec le point))