A voir également:
- VBA : ouvrir plusieurs fichiers avec "Parcourir" et les appeler
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
4 réponses
Bonsoir restonszen ,
Pourquoi ouvrir les quatre fichiers dans quatre userforms ?
Tu peux le faire dans le même module ou userform en donnant à chaque fichier un numéro d'index .. plus simplement fichierOuvert = 1 pour le premier fichier, fichierOuvert = 2 pour le deuxième fichier, etc
Ensuite, tu lis le fichier pour savoir si c'est le bon .. et si ok, tu travaille avec celui-là, sinon tu insvestit dans le deuxième fichier
A+
Pourquoi ouvrir les quatre fichiers dans quatre userforms ?
Tu peux le faire dans le même module ou userform en donnant à chaque fichier un numéro d'index .. plus simplement fichierOuvert = 1 pour le premier fichier, fichierOuvert = 2 pour le deuxième fichier, etc
Ensuite, tu lis le fichier pour savoir si c'est le bon .. et si ok, tu travaille avec celui-là, sinon tu insvestit dans le deuxième fichier
A+
Bonsoir,
tu peux les déclarer dans des variables juste après leur ouverture (toujours actif) :
Dim wb As Workbook, wb1 As Workbook, wb2 As Workbook, wb3 As Workbook, wb4 As Workbook
' ouverture fichier 1
.....
Set wb1 = ActiveWorkbook
....
Quand tu as trouvé celui à utiliser, le 3 par exemple :
set wb= wb3
With wb
With Sheets("Feuil1")
.[Feuil1!A3] = "ok"
End With
End With
ou bien l'activer pour ne pas être obligé de le nommer et raccourcir le code.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
tu peux les déclarer dans des variables juste après leur ouverture (toujours actif) :
Dim wb As Workbook, wb1 As Workbook, wb2 As Workbook, wb3 As Workbook, wb4 As Workbook
' ouverture fichier 1
.....
Set wb1 = ActiveWorkbook
....
Quand tu as trouvé celui à utiliser, le 3 par exemple :
set wb= wb3
With wb
With Sheets("Feuil1")
.[Feuil1!A3] = "ok"
End With
End With
ou bien l'activer pour ne pas être obligé de le nommer et raccourcir le code.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Bonjour tou(te)s
Je pense que c'est un truc comme ça que tu veux...
Sélection multiple sur l'explorateur de fichiers et ouverture de tout les classeurs sélectionnés
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Je pense que c'est un truc comme ça que tu veux...
Sub OuvreMulti() Dim Fichier Dim i As Integer Fichier = Application.GetOpenFilename("Fichiers Excel(*.xls; *.xlsx), *.xls; *.xlsx", , , , True) On Error GoTo Annuler For i = 1 To UBound(Fichier) 'Si tu veux employer Like il faut mettre Option Compare Text dans le haut du module 'If not Fichier(i) Like "*" & ThisWorkbook.Name then If Mid(Fichier(i), InStrRev(Fichier(i), "\") + 1) <> ThisWorkbook.Name Then On Error Resume Next Workbooks.Open Fichier(i) Else MsgBox "le fichier " & ThisWorkbook.Name & " est déjà ouvert" End If Next i Annuler: End Sub
Sélection multiple sur l'explorateur de fichiers et ouverture de tout les classeurs sélectionnés
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour à tous,
Tout d'abord, merci pour vos réponses, toutes vraiment très utiles ... et très instructives !!!
C'est peut-être pas le lieu pour le dire, mais j'apprécie énormément cette entraide (enfin, cette aide, vu que je ne suis pas -encore- très utile sur le sujet) qu'il est difficile de retrouver par ailleurs !
Ensuite, pour vous répondre :
1- à Heliotte :
Je ne connaissais pas le fonctionnement des index -_-'
Je pensais que les chiffres étaient surtout utiles pour ... calculer. (Non, je ne me loupe pas quand c'est pour me ficher la honte). Je retiens !
Du coup, je pensais faire 4 userforms pour "séparer" les instructions pour chaque fichier... Mais ça n'a fait que retarder l'échéance, j'ai ensuite été bloquée parce que je devais faire référence à ces fichiers ouverts précédemment dans un module commun ...
2- à Eriic :
Effectivement, Set simplifie grandement les choses !!! J'étais complètement à côté de la plaque pour le nommage de mes variables, les = ne sont de toute évidence pas toujours suffisants... et je les utilisais à tort et à travers.
Je note aussi qu'il faut utiliser Set 2 fois : à la déclaration de la variable (Set wb1 = activeworkbook) et lorsqu'on veut utiliser le fichier (Set wb=wb3). Toute seule, je n'aurais pas du tout pensé à le faire.
3- à Lermite222 :
J'ai aussi beaucoup appris grâce à ton code :) ubound, notamment, option compare text aussi (que je n'aurais pas su placer correctement :()...). Je pensais aussi que Mid n'était utilisé que pour remplacer des caractères... et c'est la première fois que j'entends parler de InStrRev...
Bref, pour info, vos réponses sont exactement ce que je cherchais, et en fait vous avez aussi (déjà) répondu à des questions que je ne me posais pas encore :) (Lol, je sais, il y a du boulot). Elles sont de plus compréhensibles et utilisables dans tout plein de situations, je suis ravie !!! J'ai eu de grands moments de solitude avec mon livre-catalogue-de- fonctions -que -je -ne -sais-pas- utiliser-correctement...
Merci encore de votre patience, de votre temps, et de vos conseils !
RZ
Tout d'abord, merci pour vos réponses, toutes vraiment très utiles ... et très instructives !!!
C'est peut-être pas le lieu pour le dire, mais j'apprécie énormément cette entraide (enfin, cette aide, vu que je ne suis pas -encore- très utile sur le sujet) qu'il est difficile de retrouver par ailleurs !
Ensuite, pour vous répondre :
1- à Heliotte :
Je ne connaissais pas le fonctionnement des index -_-'
Je pensais que les chiffres étaient surtout utiles pour ... calculer. (Non, je ne me loupe pas quand c'est pour me ficher la honte). Je retiens !
Du coup, je pensais faire 4 userforms pour "séparer" les instructions pour chaque fichier... Mais ça n'a fait que retarder l'échéance, j'ai ensuite été bloquée parce que je devais faire référence à ces fichiers ouverts précédemment dans un module commun ...
2- à Eriic :
Effectivement, Set simplifie grandement les choses !!! J'étais complètement à côté de la plaque pour le nommage de mes variables, les = ne sont de toute évidence pas toujours suffisants... et je les utilisais à tort et à travers.
Je note aussi qu'il faut utiliser Set 2 fois : à la déclaration de la variable (Set wb1 = activeworkbook) et lorsqu'on veut utiliser le fichier (Set wb=wb3). Toute seule, je n'aurais pas du tout pensé à le faire.
3- à Lermite222 :
J'ai aussi beaucoup appris grâce à ton code :) ubound, notamment, option compare text aussi (que je n'aurais pas su placer correctement :()...). Je pensais aussi que Mid n'était utilisé que pour remplacer des caractères... et c'est la première fois que j'entends parler de InStrRev...
Bref, pour info, vos réponses sont exactement ce que je cherchais, et en fait vous avez aussi (déjà) répondu à des questions que je ne me posais pas encore :) (Lol, je sais, il y a du boulot). Elles sont de plus compréhensibles et utilisables dans tout plein de situations, je suis ravie !!! J'ai eu de grands moments de solitude avec mon livre-catalogue-de- fonctions -que -je -ne -sais-pas- utiliser-correctement...
Merci encore de votre patience, de votre temps, et de vos conseils !
RZ