VBA : faire référence à un autre classeur sans le nommer
HELMUT94
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les pros de VBA,
j'ai deux classeurs ouverts, dans ma macro je veux déplacer la feuille de l'un vers l'autre : facile
par contre mes classeurs ne s'appelleront pas toujours pareil, comment je fais pour que la macro fonctionne avec n'importe quel classeur
je sais qu'il y a la notion ActiveWorkbook qui désigne le classeur dans lequel je suis mais comment désigner le second classeur sans le nommer puisque son nom sera différent à la prochaine utilisation de macro?
par quoi remplacer "Workbooks("RequeteGlobalePlatXLS.xls")" ?
Sub test()
'
' test Macro
'
'
Sheets("AffectationListXLS").Select
Sheets("AffectationListXLS").Move After:=Workbooks( _
"RequeteGlobalePlatXLS.xls").Sheets(1)
Windows("Classeur4").Activate
End Sub
j'ai deux classeurs ouverts, dans ma macro je veux déplacer la feuille de l'un vers l'autre : facile
par contre mes classeurs ne s'appelleront pas toujours pareil, comment je fais pour que la macro fonctionne avec n'importe quel classeur
je sais qu'il y a la notion ActiveWorkbook qui désigne le classeur dans lequel je suis mais comment désigner le second classeur sans le nommer puisque son nom sera différent à la prochaine utilisation de macro?
par quoi remplacer "Workbooks("RequeteGlobalePlatXLS.xls")" ?
Sub test()
'
' test Macro
'
'
Sheets("AffectationListXLS").Select
Sheets("AffectationListXLS").Move After:=Workbooks( _
"RequeteGlobalePlatXLS.xls").Sheets(1)
Windows("Classeur4").Activate
End Sub
Configuration: Windows / Chrome 73.0.3683.86
A voir également:
- VBA : faire référence à un autre classeur sans le nommer
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
3 réponses
Bonjour,
C'est un peu risqué, mais tu peux déterminer tous les classeurs VBA ouverts et comparer leur nom.
Un exemple :
Et tu ajoutes une comparaison.
A+
C'est un peu risqué, mais tu peux déterminer tous les classeurs VBA ouverts et comparer leur nom.
Un exemple :
Sub essai() MsgBox ActiveWorkbook.FullName For Each fichier_excel In Workbooks MsgBox fichier_excel.FullName Next fichier_excel End Sub
Et tu ajoutes une comparaison.
A+
Bonjour à tous,
s'assure qu'il n'y a que 2 classeurs d'ouverts sinon éjection :
eric
PS : copie toujours du classeur de la macro vers l'autre, qq soit l'actif.
s'assure qu'il n'y a que 2 classeurs d'ouverts sinon éjection :
Sub deplFeuil() Dim wb2 As Workbook If Workbooks.Count <> 2 Then MsgBox "Il faut 2 classeurs": Exit Sub For Each wb2 In Workbooks If wb2.Name <> ThisWorkbook.Name Then Exit For Next ThisWorkbook.Sheets("AffectationListXLS").Move After:=wb2.Sheets(1) ThisWorkbook.Activate End Sub
eric
PS : copie toujours du classeur de la macro vers l'autre, qq soit l'actif.
Bonjour,
Pourquoi "les pros" ? cest ridicule...
Pourquoi "les pros" ? cest ridicule...
Dim fichier As String
ChDir "D:\docus\excel\essai" ' à adapter
fichier = Application.GetOpenFilename("Fichiers xlsx,*.xlsx")
Workbooks.Open Filename:=fichier
pourtant, il n'y a pas besoin de "pros" pour résoudre un tel problème
pour apprendre le vba
https://excel.developpez.com/cours/?page=prog#environnement
et aussi, très pédagogique et zen (mon préféré pour les bases)
http://www.info-3000.com/vbvba/index.php
bonne découverte :o)
pour apprendre le vba
https://excel.developpez.com/cours/?page=prog#environnement
et aussi, très pédagogique et zen (mon préféré pour les bases)
http://www.info-3000.com/vbvba/index.php
bonne découverte :o)
risqué par rapport à quoi ?
je ne sais pas ajouter une comparaison
donc si je mets "fullname" à la place du nom du fichier, ça marche ?