Microsoft 365 Ouverture sélective de classeur

A-Jelil

XLDnaute Nouveau
Bonjour/ Bonsoir !
Quelqu'un pourrait-il m'aider pour trouver le code VBA qui me permettrait d'ouvrir l'un ou l'autre de deux classeurs selon un critère, à partir d'un bouton

Exemple :
Critères A ou B
Si "A" ouvrir Classeur-A
Si "B" ouvrir Classeur-B

Merci d'avance !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour A-Jelil,
Que sont vos critères A et B ? Des contenus de cellules, des résultats de calculs, des variables VBA ???
Pour l'algo on peut faire au plus simple :
VB:
Sub Ouvrir()
    Choix = xxxxxxx                                                 '  xxxxxxx à définir'
    If Choix = Critère1 Then
        Workbooks.Open Filename:=Nom_Fichier1   ' Chemin fichiers à définir'
    Else
        Workbooks.Open Filename:=Nom_Fichier2
    End If
End Sub
 

soan

XLDnaute Barbatruc
Inactif
Bonjour A-Jelil, sylvanu,

* "Feuil1" est vide ; fais Ctrl e

* lis le code VBA, adapte-le.



code VBA (12 lignes) :

VB:
Option Explicit

Sub Ouvrir()
  On Error GoTo ErrX
  Dim chn$: chn = InputBox("saisir A ou B :", "Choix du critère")
  If chn <> "" Then Workbooks.Open "C:\Users\A-Jelil\Documents\" _
    & IIf(chn = "A", "Classeur-A", "Classeur-B") & ".xlsm"
  Exit Sub
ErrX:
  MsgBox "Critère ou nom de classeur non valide." & vbLf _
    & "Vérifier aussi le chemin du classeur.", 48, "Erreur"
End Sub

soan
 

Pièces jointes

  • Exo A-Jelil.xlsm
    15.1 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bonjour A-Jelil, sylvanu, soan,

Une autre solution avec les 3 fichiers joints, à télécharger dans le même dossier (le bureau) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [D5] 'à adapter
    If Target.Address = .Address Then If .Value <> "" Then Workbooks.Open ThisWorkbook.Path & "\" & .Value & ".xlsx"
End With
End Sub
A+
 

Pièces jointes

  • Pilote(1).xlsm
    15.4 KB · Affichages: 5
  • A.xlsx
    8.6 KB · Affichages: 1
  • B.xlsx
    8.6 KB · Affichages: 1

Discussions similaires

Réponses
5
Affichages
335
Compte Supprimé 979
C