Varialbe et Union de Variable...HELP...

g.hayoune

XLDnaute Nouveau
bonjour tous le monde

voila j'ai essayer de définir une variable comme union de plusieur variable pour lui a plliquer une boucle mais malheuresement cela ne fonctionne pas..:(

voila le code vba

Code:
Private Sub CheckBox5_Click()
Option Explicit
'déclaration des variables
Private zone As Range
Private zoneb As Range
Private zone2 As Range
Private zone3 As Range
Private zone4 As Range
Private groupe As Range


...



If CheckBox5 = True Then

[COLOR="Red"][B]Set zone = Sheets("STPS.ELEC").Range("B2:B" & Sheets("STPS.ELEC").Range("B65536").End(xlUp).Row)
Set zone2 = Sheets("BIR.ELEC").Range("B2:B" & Sheets("BIR.ELEC").Range("B65536").End(xlUp).Row)
Set zone3 = Sheets("ETDE.ELEC").Range("B2:B" & Sheets("ETDE.ELEC").Range("B65536").End(xlUp).Row)
Set zone4 = Sheets("GETCHY.ELEC").Range("B2:B" & Sheets("GETCHY.ELEC").Range("B65536").End(xlUp).Row) 'définit la variable zone

Set groupe = Union(zone, zone2, zone3, zone4)[/B][/COLOR]

For Each cel In groupe 'boucle sur toutes les cellules de la variable zone
    If ComboBox1.ListCount > 1 Then 'condition 1 : la combobox1 contient au moins un élément
        'boucle sur tous les éléments de la combobox1
        For x = 0 To ComboBox1.ListCount - 1
            'condition 2 : la cellule est égale à l'élément
            If cel.Value = ComboBox1.List(x) Then
                GoTo suite 'va à la balise suite (sans ajouter l'élément)
            End If 'fin condition 2
        Next x 'prochain élément de la combobox1
End If 'fin de la condition 1
ComboBox1.AddItem cel 'ajoute l'élément à la combobox1
suite:
Next cel 'prochaine cellule de la zone
End If


iPos = 0
'Si la listbox est vide il quitte la fonction
If ComboBox1.ListCount < 1 Then Exit Sub
 Do While iPos < ComboBox1.ListCount
ComboBox1.Text = ComboBox1.List(iPos)
 'Verifie si le text existe deja

If ComboBox1.ListIndex <> iPos Then
 'Si c'est le cas il supprime et garde la position iPos...
 ComboBox1.RemoveItem iPos
Else
 'Si ce n'est pas le cas il change la position iPos...
 iPos = iPos + 1
End If
 Loop
 'Utiliser pour désélectionner la dernière ligne
 

If CheckBox5.Value = True Then
 CheckBox1.Value = False
 CheckBox2.Value = False
 CheckBox3.Value = False
 CheckBox4.Value = False
End If

End Sub

en rouge le code qui ne fonctionne pas. et lorsque je click sur ma checkbox le debogueur se lane et m'affiche :erreur d'execution 1004
la méthode 'Union4 de l'objet'_Global' a echoue.

malheuresement je pe pas vous joindre le fihier car il est très gros et une partie depend souvent d'une autre. en tous cas si quelqun voit une erreu je suis prenneur.



a l'avance merci a tous bonne journée
 

tototiti2008

XLDnaute Barbatruc
Re : Varialbe et Union de Variable...HELP...

Bonjour g.hayoune,

autant que je sache, tu ne peux pas affecter à une variable range l'union de plusieurs plages appartenant à des feuilles différentes
union ne doit pas marcher si les plages n'appartiennent pas à la même feuille
 

tototiti2008

XLDnaute Barbatruc
Re : Varialbe et Union de Variable...HELP...

oui

Code:
Private Sub CheckBox5_Click()
Option Explicit
'déclaration des variables
Private zone As Range
Private zoneb As Range
Private zone2 As Range
Private zone3 As Range
Private zone4 As Range
Private groupe As Range
[COLOR=seagreen][COLOR=blue]Dim Wks as Worksheet[/COLOR]
[/COLOR]
...



If CheckBox5 = True Then

[COLOR=blue]For each Wks in thisworkbook.worksheets
if Wks.name = "STPS.ELEC" or Wks.name = "BIR.ELEC" or Wks.name = "ETDE.ELEC" or Wks.name = "GETCHY.ELEC" then
Set groupe = wks.Range("B2:B" & wks.Range("B65536").End(xlUp).Row)
[/COLOR]
For Each cel In groupe 'boucle sur toutes les cellules de la variable zone
    If ComboBox1.ListCount > 1 Then 'condition 1 : la combobox1 contient au moins un élément
        'boucle sur tous les éléments de la combobox1
        For x = 0 To ComboBox1.ListCount - 1
            'condition 2 : la cellule est égale à l'élément
            If cel.Value = ComboBox1.List(x) Then
                GoTo suite 'va à la balise suite (sans ajouter l'élément)
            End If 'fin condition 2
        Next x 'prochain élément de la combobox1
End If 'fin de la condition 1
ComboBox1.AddItem cel 'ajoute l'élément à la combobox1
suite:
Next cel 'prochaine cellule de la zone
[COLOR=blue]end if[/COLOR]
[COLOR=blue]next wks[/COLOR]
 
End If


iPos = 0
'Si la listbox est vide il quitte la fonction
If ComboBox1.ListCount < 1 Then Exit Sub
 Do While iPos < ComboBox1.ListCount
ComboBox1.Text = ComboBox1.List(iPos)
 'Verifie si le text existe deja

If ComboBox1.ListIndex <> iPos Then
 'Si c'est le cas il supprime et garde la position iPos...
 ComboBox1.RemoveItem iPos
Else
 'Si ce n'est pas le cas il change la position iPos...
 iPos = iPos + 1
End If
 Loop
 'Utiliser pour désélectionner la dernière ligne
 

If CheckBox5.Value = True Then
 CheckBox1.Value = False
 CheckBox2.Value = False
 CheckBox3.Value = False
 CheckBox4.Value = False
End If

End Sub

à tester évidement
 

g.hayoune

XLDnaute Nouveau
Re : Varialbe et Union de Variable...HELP...

lol! tkt pas hervé ton code me sert bien aussi!!!:eek: il m'est surtout utile pour des programmation gaz au boulot mais la c paske mon fichier est differencier en plusieur onglet et ke je n'est pas reussi a adapter ton code a cette situation :eek:

mais croit moi tu t pas fais c...r pour rien...

a bientot et encore un grand merci a vous deux!!!!:D
 

Statistiques des forums

Discussions
312 778
Messages
2 092 038
Membres
105 161
dernier inscrit
lorina