Vba - Choisir une feuille

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

W

Wassss

Guest
Bonjour,

Avec mon code qui rempli une listview1 selon choix ComboBox1 : comment je peux indiquer sur quel feuille de mon classeur il doit s'executer , sans utiliser Sheets("Entrée").Select ou Sheets("Entrée").Activate ?
j'ai essayé With Sheets("Entrée") , mais ça marche pas .
je vous remerci d'avance

Code:
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)

End Sub

Private Sub UserForm_Initialize()
    
Sheets("Entrée").Select
  Dim Vcol As Byte, Colonne(4) As Byte, vC As Range, vLi As Long
  
  With ListView1
    .Gridlines = True
    .Font.Size = 15
    .Sorted = False
    .FullRowSelect = True
    .ListItems.Clear
    .View = lvwReport
    'largeurs
    
    Wcol = Array(70, 170, 70, 50)
    For Vcol = 0 To 3
      Colonne(Vcol) = Wcol(Vcol)
    Next
    
    'passage par ListView pour trier
    For Each vC In Range("B3:B" & [B65000].End(xlUp).Row).SpecialCells(xlCellTypeVisible)
      Set vItem = .ListItems.Add(, , vC)
    Next
    For vLi = 1 To .ListItems.Count
      ComboBox1 = .ListItems(vLi)
      If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem .ListItems(vLi)
    Next
    ComboBox1 = ""
    .ListItems.Clear
   With .ColumnHeaders
      For Vcol = 1 To 1
        .Add , , Cells(2, Vcol), Wcol(Vcol - 1)
      Next
       For Vcol = 2 To 4
        .Add , , Cells(2, Vcol), Wcol(Vcol - 1), lvwColumnCenter
      Next
    End With
  End With
 
  Autorise = True
End Sub
Private Sub ComboBox1_Change()
  If Autorise = False Then Exit Sub
  Dim vItem As ListItem, vLi As Integer
  With ListView1
    .ListItems.Clear
    For Each vC In Range("B2:B" & [B65000].End(xlUp).Row).SpecialCells(xlCellTypeVisible)
      If ComboBox1 = vC Then
        Set vItem = .ListItems.Add(, , vC.Offset(, -1))
        For Vcol = 2 To 4
          vItem.ListSubItems.Add , , vC.Offset(, Vcol - 2)
        Next
      End If
    Next
    ComboBox1.DropDown
    TextBox1 = .ListItems.Count
    If (ListView1.ListItems.Count <> 0) Then
    ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
    End If
  End With
End Sub
 
Re : Vba - Choisir une feuille

Bonjour Wassss et le forum,
en mettant With Sheets("Entrée"), ta macro choisira la feuille concernée du classeur actif (erreur s'il n'y a pas de feuille portant ce nom). Pour être sûr il vaut mieux mettre With Thisworkbook.Sheets("Entrée"). Terminer par End With.
Cela doit fonctionner.
Bon courage et à +
Denis
 
Re : Vba - Choisir une feuille

Bonjour à tous

Avec le with ne pas oublier le .

Pour la second sub:

Code:
Private Sub ComboBox1_Change()
  If Autorise = False Then Exit Sub
  Dim vItem As ListItem, vLi As Integer
  With ListView1
    .ListItems.Clear
With Sheets("Entrée") 
    For Each vC In .Range("B2:B" & [B65000].End(xlUp).Row).SpecialCells(xlCellTypeVisible)
      If ComboBox1 = vC Then
        Set vItem = ListView1.ListItems.Add(, , vC.Offset(, -1))
        For Vcol = 2 To 4
          vItem.ListSubItems.Add , , vC.Offset(, Vcol - 2)
        Next
End With
      End If
    Next
    ComboBox1.DropDown
    TextBox1 = .ListItems.Count
    If (ListView1.ListItems.Count <> 0) Then
    ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
    End If
  End With

End Sub
 
Dernière édition:
Re : Vba - Choisir une feuille

Bonjour,

Bonjour, Pierrejean 😀

juste pour apporter une précision, le . devant [B65000]....

Code:
For Each vC In .Range("B2:B" & .[B65000].End(xlUp).Row).SpecialCells(xlCellTypeVisible)

Peut-être???

Bon W-E (pluvieux, ici, en haut à gauche.....😡)
 
Re : Vba - Choisir une feuille

bonsoir à tous

en faite j'ai deux userform celui là et un deuxieme qui s'execute sur une deuxieme feuille , quand je travail sur ce dernier et apres je revien a mon premier userform la listview1 se rempli avec les cellules de la deuxieme feuille au lieu de la premiere
c'est pourquoi j'ai eu recour a la fonction Sheets("Entrée").Activate
 
- 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

Réponses
10
Affichages
661
Réponses
15
Affichages
784
Réponses
3
Affichages
332
Retour