XL 2013 VBA variables avec plusieurs valeurs

Nairolf87

XLDnaute Nouveau
Bonjour,
J'ai une table avec le nom de matricule ainsi que le nom de feuille d'un classeur.
Un matricule peut avoir plusieurs feuilles.
Le but après étant d'ouvrir toutes les feuilles en fonction du matricule.
Je vais donc dans un premier chercher le nom des feuilles en fonction du matricule.

Mais je ne sais pas comment je peux inclure plusieurs valeur pour une variable ?

Ici mon matricule est APR8
mais celui la peut être affecter à différentes feuilles or dans le code suivant il prend en compte uniquement le dernier nom de feuille ?

Comment tous les enregistrer ?

Merci d'avance

Ex :

VB:
Sub Identification()
    Dim name As String
    Dim Sheetname As String
    Dim matricule As String
    Dim Feuille As Variant
    Dim derlig, i As Integer
    Dim cptr As Byte
   
    matricule = "APR8"
   
    Sheets("Table").Select
    derlig = Range("A" & Cells.Rows.Count).End(xlUp).Row
   
    For i = 1 To derlig
   
    If Cells(i, 1).Value = matricule Then
        Feuille = Cells(i, 2).Value
    End If
   
    Next
       
    If Feuille = "Admin" Then
        For cptr = 1 To ThisWorkbook.Sheets.Count
        Sheets(cptr).Visible = True
        Next
   
    Else
   
        For cptr = 1 To ThisWorkbook.Sheets.Count
        If Sheets(cptr).name <> Feuille Then
        Sheets(cptr).Visible = 2
        End If
        Next
    End If
   
End Sub
 

vgendron

XLDnaute Barbatruc
VB:
Sub Identification()
   Dim name As String
   Dim Sheetname As String
   Dim matricule As String
   Dim Feuille As Variant
   Dim derlig, i As Integer
   Dim cptr As Byte
  
    matricule = "APR8"
  
    Sheets("Table").Select
    derlig = Range("A" & Cells.Rows.Count).End(xlUp).Row
  
   For i = 1 To derlig
  
   If Cells(i, 1).Value = matricule Then
        Feuille = Cells(i, 2).Value
   End If
  

      
   If Feuille = "Admin" Then
       For cptr = 1 To ThisWorkbook.Sheets.Count
        Sheets(cptr).Visible = True
       Next
  
   Else
  
       For cptr = 1 To ThisWorkbook.Sheets.Count
       If Sheets(cptr).name <> Feuille Then
        Sheets(cptr).Visible = 2
       End If
       Next
   End If
  
next
End Sub

c'est peut etre JUSTE la position du Next qui est à revoir..comme ci dessus
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95