• Initiateur de la discussion Initiateur de la discussion Polo001
  • 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 !

P

Polo001

Guest
Sub Parcourir()
Dim nomFichier As String
'Ton code pour obtenir le nom du fichier
nomFichier = Application.GetOpenFilename

MaMacro (nomFichier) 'Appelle ta procédure
End Sub

Sub MaMacro(nomFichier As String)
Workbooks.Open Filename:=nomFichier

Sheets("NEWS").Select
ActiveWindow.SmallScroll Down:=6
Range("E22").Select
Application.CutCopyMode = False
Selection.Copy
Range("D22").Select
Application.CutCopyMode = False
Selection.Copy
Windows("GRAPH NEWS.xls").Activate
Range("B13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False
Windows(nomFichier).Activate
ActiveWindow.SmallScroll Down:=6
Range("C40").Select
:=False, Transpose:=False


Je debute en macro, mon objectif est la mise à jour d'un tableau à partir d'autres fichiers.
J'ai repris une piste sur le forum mais je n'y arrive pas : la macro bloque au retour sur Windows(nomFichier).Activate.

merci
 
Re : Probleme macro

En fait, le fichier n'est pas toujours le même, par contre l'action est la même : récuperer des données; donc si je mets le nom du fichier ca marche mais que sur ce fichier.
Je pense que le probleme, c'est que la macro se souvient pas de la variable nomFichier. Et si je la redéclare il me dit qu'elle est déja dans la procédure.
 
Re : Probleme macro

Polo001 à dit:
En fait, le fichier n'est pas toujours le même, par contre l'action est la même : récuperer des données; donc si je mets le nom du fichier ca marche mais que sur ce fichier.
Je pense que le probleme, c'est que la macro se souvient pas de la variable nomFichier. Et si je la redéclare il me dit qu'elle est déja dans la procédure.


Bonjour,

En fait le nom du fichier est bien dans la variable (tu le vois en affichant les variables ou en insérant la ligne : "msgbox(nomFichier)" avant la ligne fautive). Mais après, que l'on utilise la variable ou le nom complet directement, il y a une erreur 9 "l'indice n'appartient pas à la sélection" et ce, que l'on utilise ce nom avec windows, workbooks ou worksheets. J'ai cherché un peu partout, je n'ai rien trouvé et j'aimerais comprendre également!

Cordialement
 
Re : Probleme macro

Bonjour Polo, Mecano, Chalet

essaye en modifiant le code de ta macro comme suit :

Code:
Sub MaMacro(nomFichier As String)
Dim monnom As String
Workbooks.Open Filename:=nomFichier
monnom = ActiveWorkbook.Name

en fait ta variable "nomfichier" contient également le chemin complet du fichier, synthaxe non valide pour sélectionner la fenêtre.

bon dimanche

Edition : ensuite faire référence à ce nom dans la synthaxe
"Windows(monnom).Activate"
 
Re : Probleme macro

Pierrot93 à dit:
Bonjour Polo, Mecano, Chalet

essaye en modifiant le code de ta macro comme suit :

Code:
Sub MaMacro(nomFichier As String)
Dim monnom As String
Workbooks.Open Filename:=nomFichier
monnom = ActiveWorkbook.Name

en fait ta variable "nomfichier" contient également le chemin complet du fichier, synthaxe non valide pour sélectionner la fenêtre.

bon dimanche

Edition : ensuite faire référence à ce nom dans la synthaxe
"Windows(monnom).Activate"


Avec le nom court, ça ne va pas non plus (erreur 1004)
 
Re : Probleme macro

Sub Exporter()
'
'
Dim mois As Integer
mois = InputBox("Entrer mois en cours? ex:01")
Sheets("Semaine").Select
Range("B13:F13").Selectcopie la ligne du tableau
Selection.Copy
Sheets("Mois").Select
Rows("6:18").Select
Selection.EntireRow.Hidden = False les mois sont cachés pour impression

Ici je veux dire quand mois=01 alors B6 quand 02 b7 etc
Range("B6").Select
ActiveSheet.Paste

Range("J43").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K45").Select

Ici je veux masquer juste les mois non remplis
Rows("14:17").Select

Selection.EntireRow.Hidden = True
Range("G33").Select
End Sub

J'utilise beaucoup le recorder mais la je dois réaliser 12 macros et ca va pas etre très pratique.
Dans le meme ordre d'idée, un autre fichier que j'ai réalisé pour avoir votre avis.
merci
 

Pièces jointes

- 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
18
Affichages
597
Réponses
17
Affichages
1 K
Réponses
10
Affichages
791
Retour