[VBA] Affectation d'un classeur dans variable
Jennifer75
-
Jennifer75 -
Jennifer75 -
bonjour le forum,
Je suis nouvelle en programmation et je n'arrive pas à me sortir du message "L'indice n'appartient pas à la sélection" provoqué par cette ligne :
FichierAppliSource = Application.Workbooks(SCheminFichier).
Je m'explique. Je cherche à mettre à jour un fichier. Pour cela, je veux ouvrir un fichier dans lequel il y a les données sources pour la mise à jour. J'aimerais que le classeur source soit affecté dans une variable pour éviter de le réécrire à chaque fois mais je bloque sur la ligne ci-dessus.
Voici mon code dans son ensemble :
j'ai essayé aussi ces deux écritures à la place de "FichierAppliSource = Application.Workbooks(SCheminFichier)" :
' FichierAppliSource = Workbooks(ActiveWorkbook.Name)
' SCheminFichier = Left(Dir(SCheminFichier), InStr(1, Dir(SCheminFichier), ".", 1) - 1).
Mais rien ne marche
Pourriez-vous m'aider ? je suis désespérée...
Merci d'avance
Je suis nouvelle en programmation et je n'arrive pas à me sortir du message "L'indice n'appartient pas à la sélection" provoqué par cette ligne :
FichierAppliSource = Application.Workbooks(SCheminFichier).
Je m'explique. Je cherche à mettre à jour un fichier. Pour cela, je veux ouvrir un fichier dans lequel il y a les données sources pour la mise à jour. J'aimerais que le classeur source soit affecté dans une variable pour éviter de le réécrire à chaque fois mais je bloque sur la ligne ci-dessus.
Voici mon code dans son ensemble :
Public FeuilleAppliSource As Worksheet, FichierAppliSource As Workbook 'nom de la feuille et du fichier sources Sub OuvertureFichierSource() Dim SCheminFichier As String 'ouvrir le fichier source SCheminFichier = Application.GetOpenFilename() If SCheminFichier = "" Then Exit Sub Else SCheminFichier = Dir(SCheminFichier) FichierAppliSource = Application.Workbooks(SCheminFichier) End If FichierAppliSource.Worksheets("Résultat" ).Name = SFeuilleTravail ' SFeuilleTravail est un string qui vaut "Mis à jour" Set FeuilleAppliSource = FichierAppliSource.Worksheets(SFeuilleTravail) FeuilleAppliSource.Copy After:=FeuilleAppliMAJ End Sub
j'ai essayé aussi ces deux écritures à la place de "FichierAppliSource = Application.Workbooks(SCheminFichier)" :
' FichierAppliSource = Workbooks(ActiveWorkbook.Name)
' SCheminFichier = Left(Dir(SCheminFichier), InStr(1, Dir(SCheminFichier), ".", 1) - 1).
Mais rien ne marche
Pourriez-vous m'aider ? je suis désespérée...
Merci d'avance
A voir également:
- [VBA] Affectation d'un classeur dans variable
- Imprimer un classeur excel sur mac - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Excel compter cellule couleur sans vba - Guide
cela a l'air de marché. Par contre, je me retrouve avec un message d'erreur '-2147021892 (80070bbc)' qui est lié à un problème avec le fichier. Comment puis-je faire pour éviter ce message d'erreur.
Aidez-moi, je n'y arriverais jamais !