code bugeur

Mosar3

XLDnaute Nouveau
bonjour,
Code:
Private Sub userform_initialize()
    
    ' Déclaration d'un nouvelle collection
    Dim NoDupes As New Collection
    ' Activer la feuille Clients
    Sheets("Clients").Activate
    ' Sélection de la plage C4 à la dernière ligne remplie
    Range([C4], [C65536].End(xlUp)).Select
    For Each Cell In Selection
        'Si la cellule est vide, je ne l'ajoute pas dans la Combobox
        If Cell.Value = "" Then
        Else
            ' Sinon j'ajoute les valeurs à la collection NoDupes
            NoDupes.Add Cell
        End If
    Next Cell
    ' Pour 1 to Nombre d'éléments de la collection moins -1
    ' je fais un tri (à prendre tel quel et ce n'est pas de moi)
    For i = 1 To NoDupes.Count - 1
        For j = i + 1 To NoDupes.Count
            If NoDupes(i) > NoDupes(j) Then
                Swap1 = NoDupes(i)
                Swap2 = NoDupes(j)
                NoDupes.Add Swap1, before:=j
                NoDupes.Add Swap2, before:=i
                NoDupes.Remove i + 1
                NoDupes.Remove j + 1
            End If
        Next j
    Next i
    'Chaque item de ma collection (les noms de personnes),
    ' est ajouté dans ma Combobox (AddItem)
    For Each Item In NoDupes
        UserForm1.NomDesClients.AddItem Item
    Next Item
    ' Je me place en A1
    Application.Goto Reference:=Range("A1"), Scroll:=True
End sub
Ce code marche
Code:
Private Sub userform_initialize()
    
    ' Déclaration d'un nouvelle collection
    Dim NoDupes As New Collection
    ' Activer la feuille Clients
    Sheets("Clients").Activate
    ' Sélection de la plage C4 à la dernière ligne remplie
    Range([C4], [C65536].End(xlUp)).Select
    For Each Cell In Selection
        'Si la cellule est vide, je ne l'ajoute pas dans la Combobox
        If Cell.Value = "" Then
        Else
       [COLOR="Red"] If Cell.Value = " "Then[/COLOR]
       Else
            ' Sinon j'ajoute les valeurs à la collection NoDupes
            NoDupes.Add Cell
        End If
    Next Cell
    ' Pour 1 to Nombre d'éléments de la collection moins -1
    ' je fais un tri (à prendre tel quel et ce n'est pas de moi)
    For i = 1 To NoDupes.Count - 1
        For j = i + 1 To NoDupes.Count
            If NoDupes(i) > NoDupes(j) Then
                Swap1 = NoDupes(i)
                Swap2 = NoDupes(j)
                NoDupes.Add Swap1, before:=j
                NoDupes.Add Swap2, before:=i
                NoDupes.Remove i + 1
                NoDupes.Remove j + 1
            End If
        Next j
    Next i
    'Chaque item de ma collection (les noms de personnes),
    ' est ajouté dans ma Combobox (AddItem)
    For Each Item In NoDupes
        UserForm1.NomDesClients.AddItem Item
    Next Item
    ' Je me place en A1
    Application.Goto Reference:=Range("A1"), Scroll:=True
end sub

Ce code bug et me met next sans for
J'ai mis en rouge l'element qui différencie les 2 codes .
HELP!!!!

Merci et au revoir

Code:
[CODE]
[/CODE]




PS : Ce code m'a été fourni par qqn, et comme je suis débutant, il m'a gentiment ajouté des commentaires, j'explique pour ceux qui pourraient croire que je prend les gens de ce forums pour des débutants...
 
Dernière édition:

wilfried_42

XLDnaute Barbatruc
Re : code bugeur

Bonjour

ce code est tres difficile à lire, s'il etait indenté ca serait plus simple, maintenant, s'il est indenté dans ton source en l'encadrant avec l'option code, il n'aurait pas supprimé les espaces : (selectionner la plage et cliquer su # au dessus
Code:
For Each Cell In Selection
     If Cell.Value = "" Then
     Else
         If Cell.Value = " "Then
         Else
              NoDupes.Add Cell
         End If
     [B][COLOR="Red"]end if[/COLOR][/B]
Next Cell
 

excalibur

XLDnaute Impliqué
Re : code bugeur

bonjour Mosar3 wilfried_42 le forum version plus simple & plus rapide
NomDesClients nom de ta combo je suppose
Private Sub UserForm_Initialize()
Dim T, z As Variant, l As Collection, X As Long, i As Long
On Error Resume Next
Set l = New Collection
T = Range("c4:c" & Range("c65536").End(xlUp).Row)
For i = LBound(T) To UBound(T)
l.Add T(i, 1), T(i, 1): Next
For Each z In l
NomDesClients.AddItem z: Next
End Sub
 

Mosar3

XLDnaute Nouveau
Re : code bugeur

bonjour le forum
je vous rappelle que le 1er code marche... Ce n'est donc pas le problème!
Est-ce que ce que j'ai mis en rouge pourrait faire qqch sur le "next cell"??



Merci de vos réponses

A bientôt!
Ps : merci pour la balise code que je ne connaissait pas!
 
Dernière édition:

Mosar3

XLDnaute Nouveau
Re : code bugeur

Bonjour Wilfried 42 et Excalibur et le forum!

Merci beaucoup Wilfried c'était evidemment ça! Je suis débutant mais je ne pensait pas à ce point là!:D
Je croyait que ces trucs là quand même je les verrait!
Enfin bon merci beaucoup c'est super!!
Salut tt le monde et merci beaucoup de vos réponses qui aident les p'tits débutants en programmation comme moi (et sûrement aussi les grands experts qui ne peuvent pas toujours tout savoir!!:p)
 

Discussions similaires

Réponses
11
Affichages
343

Statistiques des forums

Discussions
312 428
Messages
2 088 342
Membres
103 821
dernier inscrit
Lorient56