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