Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

pbm VBA : fermer UN classeur parmi ceux ouver

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

M

Max18

Guest
Bonjour à tous,

Je fais appel à vous pour un problème qui ne doit pas être difficile, certe, mais je débute tout récemment dans ce domaine.

J'ai deux classeurs qui sont ouverts et je me situe actuellement sur le deuxième.
Quel code utiliser pour afficher le premier classeur à l'écran.

Merci à vous tous.
 
Je vous pris de m'excuser mais je crois avoir trouver ce que je cherchais dans les archives.

Cela dit, j'ai une autre question qui me tracasse, ou plutôt ce code d'ailleur :

Range('B6:AK30').Select
Selection.FormulaArray = '='[ICNA 2006 LFBL.xls]Planning'!R6C2:R30C37'
ActiveWindow.SmallScroll Down:=27

Ce code me permet de 'joindre' dans un premier classeur le contenu d'une plage de cellule d'un autre classeur.

Cela suppose que la plage de cellule est tjr la même.

Mais comment faire si cette zone augmente disons d'une ligne ?

Merci encore
 
Bonjour

on détermine la dernière ligne par exemple avec

derligne=Range('a65536').end(xlUp).row

Range('B6:AK' & derligne).Select
Selection.FormulaArray = '='[ICNA 2006 LFBL.xls]Planning'!R6C2:R' & derligne & 'C37'

A+
 
Merci beaucoup d'éclairer mes lumières.

Hélas cette solution ne convient pas. Je me suis mal exprimé.

En fait, j'ai 12 tableaux dans la même page et je dois les sélectionner un à un pour faire la liaison avec le classeur 'source'.
 
Je vais essayer d'être plus clair :
en fait mon code se résume à cela :

'Range('B6:AK30').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R6C2:R30C37'
'Range('B38:AD62').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R38C2:R62C30'
'Range('B70:AD94').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R70C2:R94C30'
'Range('B102:AD126').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R102C2:R126C30'
'Range('B134:AK158').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R134C2:R158C37'
'Range('B166:AD190').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R166C2:R190C30'
'Range('B198:AK222').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R198C2:R222C37'
'Range('B230:AD254').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R230C2:R254C30'
'Range('B262:AD286').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R262C2:R286C30'
'Range('B294:AK318').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R294C2:R318C37'
'Range('B326:AD350').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R326C2:R350C30'
'Range('B358:AD382').Select
'Selection.FormulaArray = '='[NomClasseurSource]Planning'!R358C2:R382C30'

Pour conclure :
- 'NomClasseurSource' est un nom de classeur qui est saisi dans une Textbox5 (avec la racine .xls)

- J'aimerai connaitre une solution me permattant d'indiquer les 12 plages de cellules à répartir sur les 12 'portions de code'.
 
Mes plages de cellule sont toujours les mêmes. Ils ne me reste plus qu'à trouver une solution me permettant d'indiquer le nom du classeur qui est saisi dans une Textbox5 (mais sans la racine .xls)
 
C'est encore moi,

Je voudrai savoir si ce code ....

Selection.FormulaArray = '='[' & TextBox1.Value & ']Planning'!R6C2:R30C37'

peut se développer ainsi (ou dans quelque chose du genre) :

Workbooks(UserForm3.TextBox1.Value).Activate
Sheets('Feuil2').Select
Range('R6C2:R30C37').Select
 
Ou un truc de ce genre là :

Selection.FormulaArray = '='[(Workbooks(UserForm3.TextBox1.Value).Sheets(Planning).Select)]'!R6C2:R30C37'

Merci merci beaucoup à tous ceux qui se préocupe de mon problème
 
Merci pour tout ton aide ERIC S,

Tes deux formules conviennent parfaitement à mes attentes. Je les ai à peine modifiées et ça marche du tonerre.

Encore merci et passe une excélente journée.
Au fait bon appétit
 
Salut Max18
bonjour Eric
je n'ai pas adapter avec les TextBox et autre Combo mais j'ai pensé que la macro pourrait être simplifiée (non testé)
Sub test()
Dim FirstLigne As Integer
Dim DerLigne As Integer
DerLigne = 30
For FirstLigne = 6 To 358 Step 32

Select Case DerLigne
Case Is = 30, 158, 222, 318
Range(Cells(2, FirstLigne), Cells(DerLigne, 37)).Select
Selection.FormulaArray = '='[NomClasseurSource]Planning'!R' & FirstLigne & 'C2:R' & DerLigne & 'C37'
Case Else
Range(Cells(2, FirstLigne), Cells(DerLigne, 30)).Select
Selection.FormulaArray = '='[NomClasseurSource]Planning'!R' & FirstLigne & 'C2:R' & DerLigne & 'C30'
End Select
DerLigne = DerLigne + 32
Next

End Sub
A voir
Bonne journée
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…