do while loop ne fonctionne pas comme je veux

  • Initiateur de la discussion Initiateur de la discussion marie49
  • 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 !

marie49

XLDnaute Occasionnel
Bonjour,

Cela fait un moment que je tourne en rond pour obtenir ce que je veux avec un do while...

Voici le code : il s'agit du bouton valider dans un USF. Je demande à l'utilisateur d'entrer l'année et le numero de version. ceci afin de récupérer un nom de fichier et l'enregistrer.

Ficword et nomrép sont des variables public

Private Sub Valider_Click()

Dim Msg As Integer

'Prévenir que le fichier existe
Annee = ComboBoxAnnee.Value
Version = ComboBoxVersion.Value
FicWord = Nomrép & "\" & Annee & "." & Version & ".doc"


If Len(Dir(FicWord)) > 0 Then
Msg = msgbox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?", "1")
End If

Unload Me

Do While Msg = 2 And Len(Dir(FicWord)) > 0
ListeFichierWord.Show
Annee = ComboBoxAnnee.Value
Version = ComboBoxVersion.Value
FicWord = Nomrép & "\" & Annee & "." & Version & ".doc"
Msg = msgbox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?", "1")
Unload Me

Loop
End Sub

Je pense que j'ai tellement fait d'essai que je ne sais plus ce que je fais.

La msgbox apparait plusieurs fois...

Je pense que la solution est simple mais où??

Quelqu'un a t-il une idée?
Merci
Marie
 
Re : do while loop ne fonctionne pas comme je veux

Bonsoir le fil, Marie49

Sans trop chercher, ta "Sub" devrait avoir la forme suivante 🙄

Code:
Private Sub Valider_Click()
    Dim Msg As Integer

    Do 
	ListeFichierWord.Show
	Annee = ComboBoxAnnee.Value
	Version = ComboBoxVersion.Value

	FicWord = Nomrép & "\" & Annee & "." & Version & ".doc"
	Msg = msgbox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?", "1")

	Unload Me

    Loop While Msg = 2 And Len(Dir(FicWord)) > 0

End Sub

Tiens nous au courant 🙂

A plus
 
Re : do while loop ne fonctionne pas comme je veux

Bonjour et merci pour la réponse mais ca ne fonctionne pas...

Je continue de chercher d'où vient mon erreur. Je pense qu'il ne faut pas que j'utilise le usf.show car en utilisant le bouton valider dans la boucle do on n'en sort pas au moment voulu. Mais si je l'enleve, je boucle dans le do...

Je vais essayer en mettant un exit sub

A+
Marie
 
Re : do while loop ne fonctionne pas comme je veux

Bonjour

Une piste
remplacer
Msg = msgbox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?", "1")
par

Select Case MsgBox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?" _
& vbCrLf & "" _
, vbYesNo Or vbExclamation Or vbDefaultButton1, Application.Name)

Case vbYes

Case vbNo

End Select

et mettre exit do en fonction de la réponse

JP
 
Re : do while loop ne fonctionne pas comme je veux

Bonjour à tous,

J'ai enfin trouvé : il ne faut pas mettre de do ...loop. Il faut juste mettre un if.

Si l'utilisateur répond qu'il ne veut pas écraser le fichier, on réinitialise l'usf avec unload et ensuite show.
J'avais la solution en partie dans mon dernier message. En expliquant les choses, des fois, on apporte la solution sans s'en rendre compte...

Code:
Private Sub Valider_Click()

    Dim Msg As Integer

    'Prévenir que le fichier existe

    Annee = ComboBoxAnnee.Value
    Version = ComboBoxVersion.Value
    FicWord = Nomrép & "\" & Annee & "." & Version & ".doc"
    
    If Len(Dir(FicWord)) > 0 Then
    Select Case msgbox("Le fichier " & FicWord & " existe déjà, voulez-vous continuer et écraser le fichier?" _
        & vbCrLf & "" _
        , vbYesNo Or vbExclamation Or vbDefaultButton1, Application.Name)

    Case vbYes
    
    Case vbNo
    Unload Me
    ListeFichierWord.Show
    End Select
    End If

    Unload Me

End Sub

Merci à vous deux,
A bientot
Marie49
 
- 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

Retour