Vba - Choisir une feuille

Wassss

XLDnaute Nouveau
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
 
D

Denis

Guest
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
 

pierrejean

XLDnaute Barbatruc
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:

Cousinhub

XLDnaute Barbatruc
Re : Vba - Choisir une feuille

Bonjour,

Bonjour, Pierrejean :D

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.....:mad:)
 

Wassss

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
11
Affichages
280

Statistiques des forums

Discussions
312 100
Messages
2 085 294
Membres
102 854
dernier inscrit
ADRIENVR