Problème sur l'objet Windows

  • Initiateur de la discussion Initiateur de la discussion Bruno Pérès
  • 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 !

B

Bruno Pérès

Guest
Bonjour à tous,

Voilà tout d'abord ce que je souhaite faire avec le code associé à la suite. Je voudrais ouvrir un UserForm uniquement si certains champs du fichier "Modele" sont vides. N'arrivant pas à le faire pour une raison que j'ignore, j'ai essayé de contourner provisoirement le problème car je suis un peu pressé par le temps.

' Déclaration des variables
Dim Réponse As Single
Dim CodeUsev As String
Dim LibelleUsev As String
Dim IdentifiantVendeurFictif As String
Dim LibelleVendeurFictif As String
Dim IdentifiantAdv1 As String

En passant, je souhaite ensuite supprimer la boîte de dialogue qui me demande si je veux mettre à jour les liaisons de ce fichier, mais cela ne fonctionne pas :-( Mystère ...

' Désactivation des boîtes de dialogue
Application.DisplayAlerts = False
' Appel du fichier modèle
Set Modele = GetObject(CheminFichierModèle & NomFichierModèle)
' Définition des variables objets
CodeUsev = Modele.Sheets(3).Range("B2").Value
LibelleUsev = Modele.Sheets(3).Range("G2").Value
IdentifiantVendeurFictif = Modele.Sheets(3).Range("B4").Value
LibelleVendeurFictif = Modele.Sheets(3).Range("G4").Value
IdentifiantAdv1 = Modele.Sheets(3).Range("B7").Value
' Vérification de l'existence des valeurs nécessaires au traitement du fichier
If CodeUsev = "" Or LibelleUsev = "" Or IdentifiantVendeurFictif = "" _
Or LibelleVendeurFictif = "" Or IdentifiantAdv1 = "" Then
' ---------------------------------------------------------------------------------------------
' Ouverture de la boite de dialogue si données incomplètes
Réponse = MsgBox("Les données du modèle Excel sont incomplètes. " _
& Chr(10) & "Veuillez les compléter,enregistrer le fichier " _
& "et relancer la macro.", vbOKOnly + vbCritical, _
"Données du modèle Excel incomplètes")

Là se situe mon problème : à la place de "Etablissement sans vendeur - Modèle3.xls", je voudrais mettre la valeur "Modele" appelée au dessus, mais sans succès :-( Est-ce possible, et si oui, comment ? Précisions : les variables entrant dans la "composition" de "Modele" (CheminFichierModèle & NomFichierModèle) sont des constantes définies en tête du module qui servent dans l'ensemble de la macro, et qui sont sujettes à variation selon le micro sur lequel je travaille (ressources différentes).

' Activation du fichier Modèle
Windows("Etablissement sans vendeur - Modèle3.xls").Activate
' Sélection de la feuille de données agence (DA)
Sheets(3).Select
' Positionnement du curseur sur la cellule vide
If CodeUsev = "" Then
Range("B2").Activate
ElseIf LibelleUsev = "" Then
Range("G2").Activate
ElseIf IdentifiantVendeurFictif = "" Then
Range("B4").Activate
ElseIf LibelleVendeurFictif = "" Then
Range("G4").Activate
ElseIf IdentifiantAdv1 = "" Then
Range("B7").Activate
End If
' ---------------------------------------------------------------------------------------------

Entre les deux traits se trouve le code de remplacement, car comme indiqué plus haut, je souhaitais utiliser le UserForm appelé ci-dessous. Malheureusement, le message d'erreur suivant apparaît :

Erreur d'exécution '5':

Argument ou appel de procédure incorrect

Je n'arrive pas à trouver pour quelle raison, mes connaissances en VBA étant limitées puisque débutant. En désespoir de cause, j'ai mis en veille cet appel et ai créé le code de remplacement ci-dessus.

' fmDonneesAgence.Show
' Réactivation des boîtes de dialogue
Application.DisplayAlerts = True

Exit Sub
End If
Modele.Close
fmChoixOperation.Show

End Sub



Quelqu'un peut-il me venir en aide, au moins pour le point entre les deux traits ? Et pourquoi pas pour les autres 🙂
Merci d'avance

Bruno Pérès
 
Bonjour Bruno,

Je n'ai pas épluché dans le détail ton code mais une première lecture rapide appelle déjà une remarque.

Dans tes noms de variables, évite les accents, virgules, espaces, traits d'union et tout autre caractère "caballistiques" (les accents dans ton cas).

A+

Abel
 
Bonsoir le Forum,

J'ai trouvé une solution pour le problème principal. En fait, je m'évertuais à essayer d'appeler le fichier avec le chemin en entier, alors qu'un simple appel du fichier suffit : Windows(NomFichierModèle).Activate au lieu de Windows(Modèle).Activate.

En revanche, les autres problèmes persistent. Je fais donc toujours appel aux âmes châritable, et surtout aux spécialistes que je ne suis pas.

Bonne soirée
Bruno Pérès
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
511
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
6
Affichages
604
Retour