Problème sur l'objet Windows

  • Initiateur de la discussion Bruno Pérès
  • Date de début
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
 
A

Abel

Guest
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
 
B

Bruno Pérès

Guest
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
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
679
Réponses
6
Affichages
331
Réponses
4
Affichages
362

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005