"For Each Cell In Range" sur feuille non active

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

B

babylonzoo

Guest
Bonjour à tous,
la question est dans le titre. Peut on balayer un range de cellules (listbox a alimenter sans doublons dans mon cas) sans que la feuille soit active. j'ai essayer sheets et worsheets avant Range, de passer par un Set plage (For Each Cell In plage) ect ... mais rien a faire, si je n'active pas la feuille la macro de fonctionne pas.
Merci pour vos reponses
Babylonzoo
 
Re : "For Each Cell In Range" sur feuille non active

Salut babylonzoo et le forum
Sans code, rien à faire, je n'arrive pas à le dépanner 😀 !!!
Ma boule de cristal, qui est brumeuse, semble me dire que tu utilises des Select...
A+
 
Re : "For Each Cell In Range" sur feuille non active

merci pour votre aide
ci joint la partie du code qui fonctionne tant que la sheets(x) est active.

Code:
Private Sub ListBox14_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim var21 As String
Dim x As Byte
Dim ii As Long
Dim b As Range
Dim col As Integer
Dim Cell As Range
Dim Unique As New Collection
Dim Valeur As Range
Dim plage As Range

Me.ListBox15.Clear

On Error Resume Next

var21 = ListBox14.List(ListBox14.ListIndex, 0)

For x = 1 To Sheets.Count
Set b = Workbooks("base données").Sheets(x).Rows(2).Find(var21, LookIn:=xlValues, lookat:=xlWhole)

    If Not b Is Nothing Then
    col = b.Column
    ii = Workbooks("base données").Sheets(x).Cells(65536, col).End(xlUp).Row
    Set plage = Workbooks("base données").Sheets(x).Range(Cells(3, col), Cells(ii, col))

    For Each Cell In plage
    Unique.Add Cell, CStr(Cell)
    Next Cell

    For Each Valeur In Unique
    Me.ListBox15.AddItem Valeur
    Next Valeur

    End If

Next

End Sub

si vous avez qqs idées ... avec with et end with ne fonctionne pas non plus

sinon je ferai un fichier d'exemple

babylonzoo
 
Dernière modification par un modérateur:
Re : "For Each Cell In Range" sur feuille non active

Salut babylonzoo et le forum
Ce que tu écris :
Code:
Set plage = Workbooks("base données").Sheets(x).Range(Cells(3, col), Cells(ii, col))
Ce que lit excel :
Code:
Set plage = Workbooks("base données").Sheets(x).Range(ActiveSheet.Cells(3, col), ActiveSheet.Cells(ii, col))
Pas étonnant qu'il fasse un KK nerveux 😀
Un truc dans ce style lui faciliterait sans doute le transist intestinal :
Code:
        With Workbooks("base données").Sheets(x)
            Set plage = .Range(.Cells(3, col), .Cells(ii, col))
        End With
A+
 
Re : "For Each Cell In Range" sur feuille non active

Salut babylonzoo et le forum
je ne parle pas encore assez bien "excel" je crois..
On fait tous des erreurs. Et celle-ci, est une typique, mais qui est plus rigolote quand elle ne déclenche pas d'erreur : passé quelques heures à chercher pourquoi je ne parcourais pas toute ma plage à chaque fois. Pourtant quand Je suivais en pas-è-pas en regardaht les valeurs dans ma feuille mon F1.range("A" & Cells(65536,"A").end(xlup).row) me donnait toujours la bonne ligne 😱...
 
- 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
7
Affichages
450
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
563
Retour