VBA commande_Click ne fonctionne pas correctement

Bonjour,

Je suis toute nouvelle. Merci pour votre message de bienvenue. J'ai un script de recherche, de création, de suppression, de modification de fichiers à écrire. J'en suis au tout début, mais déjà je me heurte à la macro du userform, notamment le bouton "OK". Je vous envoie cette macro, tout fonctionne normalement, sauf la partie où je dois obtenir l'ouverture d'un msgbox quand l'utilisateur a saisi le nom d'un fichier qui n'existe pas. J'ai essayé pas mal de code, rien n'a fonctionné.

Quelqu'un peut-il m'aider à franchir ce pas ?

Merci d'avance.

Bonjour,

Merci de mettre le fichier excel en ligne (sans données confidentielles). Ce sera plus facile.

a première vue je ne comprends pas cette ligne

If dir(textbox1).value = "" then

Il faudrait essayer avec --> If textbox1.value = "" then

Amicalement

Bonjour,

Merci d'avoir répondu.

Cette ligne que vous ne comprenez pas n'est rien d'autre qu'une unième tentative pour régler cette situation.

J'ai essayé avec if textboxvalue = "" then, cela ne fonctionne pas car étant donné qu'il y a un 1er if je suis tenue de mettre elseif, quand je le mets il met " erreur 1004 La méthode de Open de l'objet workbooks a échoué ".

Je vais vous envoyer le fichier total. J'espère c'est ce que vous souhaitez.

Merci

16principal1.xlsm (18.85 Ko)

Bonjour

teste l'existence du fichier

ElseIf Dir$(Filename:="\\C:\x\p\" & (TextBox1.Value) & ".xlsm") = "" Then
MsgBox ("Le dossier demandé n'existe pas!")

Cordialement

Re,

C'est sur le répertoire que cela bloque --> C:\x\p\"

Il faudrait savoir dans quel répertoire se trouve le fichier à ouvrir.

Est-ce qu'il se trouve dans le même répertoire que le présent fichier ?

A vous relire

Salut,

Le problème, je le crains fort, est ailleurs, mais n'étant pas vraiment professionnelle, je suis incapable de le trouver. J'ai essayé vos deux solutions, mais le script répond toujours de la même façon : erreur 1004.

Ce n'est pas une question de répertoire, car tous les fichiers sont dans le même répertoire. Quand je saisi 180, il ouvre 180.xlsm, car ce fichier existe, si je saisis 801, il me répond par l'erreur 1004, car 801.xlsm n'existe pas ; c'est la partie elseif qui ne fonctionne pas.

Si le chiffre saisi dans le textbox correspond à un fichier,

instructions : il ouvre ce fichier

Si le chiffre saisi dans le texbox ne correspond à aucun fichier existant

instruction : msgbox "le fichier n'existe pas, vous devez le créer"

Cela me parait simple, mais c'est un vrai casse-tête

Merci pour vos tentatives.

A bientôt

Bonjour

Voudrais-tu tester cela

Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Value) Then
    Sheets("données").Range("A1") = TextBox1.Value
ElseIf Not IsNumeric(TextBox1.Value) Then
    MsgBox "Valeur Incorrecte"
'ElseIf IsEmpty(TextBox1.Value) Then 'Inutile car rien n'est pas numérique
    'MsgBox "Vous n'avez rien saisi !"
 End If
 Dir$ ("C:\x\p\" & (TextBox1.Value) & ".xlsm")
 If Dir$("C:\x\p\" & (TextBox1.Value) & ".xlsm") = "" Then
 MsgBox ("Le dossier demandé n'existe pas!")
 ElseIf Dir$("C:\x\p\" & (TextBox1.Value) & ".xlsm") <> "" Then
 Workbooks.Open Filename:="C:\x\p\" & (TextBox1.Value) & ".xlsm"
 End If
 End Sub

Cordialement

11principal1.xlsm (23.43 Ko)

Bonjour à tous,

Merci Amadeus, mission accomplie. Cela fonctionne. J'avais deviné que c'est le workooks.open filemane qui posait problème, mais je ne savais pas comment le positionner pour qu'il ne domine pas . Je vais pouvoir continuer le script. Merci encore.

Bonne journée à tous.

re

Tu n'as pas répondu aux questions que je posais...

Après avoir visionné le fichier, les codes dans l'USF peut se résumé à ceux-ci :

Option Explicit
Private Sub UserForm_Initialize()
    mon_userform.Height = 170
    mon_userform.Width = 220
End Sub

Pour ce qui est du code, une autre manière que celle proposée par Amadeus peut être celle-ci

Private Sub CommandButton1_Click()
Select Case TextBox1.Value
Case IsNumeric(TextBox1)
  Sheets("données").Range("A1") = TextBox1.Value
  On Error Resume Next
  Application.DisplayAlerts = False
  Workbooks.Open "C:\x\p\" & TextBox1.Value & ".xlsm"
   Application.DisplayAlerts = True
  If Err > 0 Then MsgBox "Le dossier demandé n'existe pas!"
  Case Else: MsgBox "Veuillez saisir une valeur correcte !": TextBox1 = ""
End Select
End Sub

Je suppose que le répertoire est bien C:

Le reste des instructions se trouvant dans l'USF peut être supprimé.

Pour le bouton ANNULER, on peut simplement utiliser ce code

Private Sub CommandButton2_Click()
Unload Me
End Sub

Cordialement

Rechercher des sujets similaires à "vba commande click fonctionne pas correctement"