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

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
Bonjour

sans fichier exemple, difficile de t'aider..
mais à priori, c'est ici que ca se passe. (ou que ca ne se passe pas justment)
VB:
For i = 1 To derlig
   
   If Cells(i, 1).Value = matricule Then
        Feuille = Cells(i, 2).Value
   End If
 

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

Réponses
11
Affichages
335
Réponses
5
Affichages
220
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…