Excel (vba) - Enregistrer avec conditions

Résolu
Brandysve Messages postés 59 Statut Membre -  
melanie1324 Messages postés 1561 Statut Membre -
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

3 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1
  3. Brandysve Messages postés 59 Statut Membre 5
     
    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
    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))
    0