Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Plutot filtrer que trier

5 réponses
Avatar
IMER09
Ma question precedente n'etait vraiment pas tres claire!!

Je voudrai filtrer les données de ma feuil1 pour les copier sur ma feuil2
je voudrai rendre ce filtrage un peu plus convivial qu'avec DONNEE/filtre
auto ou Filtre elabore
J'ai donc creer un UF avec 8CBX pour les 8 colonnes a filtrer
Quand les 8 cbx sont renseignés pas de probleme mais si je laisse une ou
plusieur CBX en blanc (parce que je ne veux pas filtrer sur ce ou ces
criteres) je ne recupere aucune donnée
Est ce que quelqu un aurait une idée

Une partie de mon code est le suivant:

Dim Ligne As Long, C As Range
Dim Rg As Range, A As Integer
With Sheets(ShDepart)
Ligne = .Range("A65536").End(xlUp).Row + 1

Set Rg = Range("AJ4", Range("AJ65536").End(xlUp))

For Each C In Rg
If C = ComboBox7 And C.Offset(, -33) = ComboBox1 _
And C.Offset(, -29) = ComboBox3 And C.Offset(, -30) = ComboBox4
And _
C.Offset(, -32) = ComboBox5 And C.Offset(, -31) = ComboBox6 And _
C.Offset(, -28) = ComboBox8 Then
For A = 1 To 41
.Cells(Ligne, A) = Cells(C.Row, A)
Next
Ligne = Ligne + 1
End If
Next
End with

Merci
--
IMER09

5 réponses

Avatar
Fredo P
Avec cette ligne corrigée je suppose que cela devrait convenir.

Set Rg = Range("AJ4:AJ", Range("AJ65536").End(xlUp))
Avatar
IMER09
Je te remerci fredo P mais ca ne change rien
Mon code est bon et fonctionne si je renseigne toute les CBX , je fait donc
un filtre sur les 7 criteres. Le Pb c'est que je voudrai faire un filtre sur
parfois 2 criteres ,parfois 3, parfois 4 etc. Et le choix des 1,2,3,4, etc
critere peut etre different. Quand je ne renseigne pas les 7 cbx la copie sur
la feuil2 est blanche et c'est normal vu le code
Ma question est: est ce que quelqu'un ou une connaitrait une solution?
(un bout de code a ajouter pour ne prendre en compte que les CBX renseignées
et faire le filtre sur ces CBX par ex)

MERCI
--
IMER09


"Fredo P" wrote:

Avec cette ligne corrigée je suppose que cela devrait convenir.

Set Rg = Range("AJ4:AJ", Range("AJ65536").End(xlUp))





Avatar
Mishell
Bonjour.

Remplace C = ComboBox7
par
(C = ComboBox7 Or ComboBox7 = "")
en n'oubliant pas les parenthèses

Remplace C.Offset(, -33) = ComboBox1
par
(C.Offset(, -33) = ComboBox1 Or ComboBox1 = "")

etc...

Mishell


"IMER09" wrote in message
news:
Ma question precedente n'etait vraiment pas tres claire!!

Je voudrai filtrer les données de ma feuil1 pour les copier sur ma feuil2
je voudrai rendre ce filtrage un peu plus convivial qu'avec DONNEE/filtre
auto ou Filtre elabore
J'ai donc creer un UF avec 8CBX pour les 8 colonnes a filtrer
Quand les 8 cbx sont renseignés pas de probleme mais si je laisse une ou
plusieur CBX en blanc (parce que je ne veux pas filtrer sur ce ou ces
criteres) je ne recupere aucune donnée
Est ce que quelqu un aurait une idée

Une partie de mon code est le suivant:

Dim Ligne As Long, C As Range
Dim Rg As Range, A As Integer
With Sheets(ShDepart)
Ligne = .Range("A65536").End(xlUp).Row + 1

Set Rg = Range("AJ4", Range("AJ65536").End(xlUp))

For Each C In Rg
If C = ComboBox7 And C.Offset(, -33) = ComboBox1 _
And C.Offset(, -29) = ComboBox3 And C.Offset(, -30) = ComboBox4
And _
C.Offset(, -32) = ComboBox5 And C.Offset(, -31) = ComboBox6 And
_
C.Offset(, -28) = ComboBox8 Then
For A = 1 To 41
.Cells(Ligne, A) = Cells(C.Row, A)
Next
Ligne = Ligne + 1
End If
Next
End with

Merci
--
IMER09


Avatar
IMER09
Quelle bonne surprise ce matin en voyant ta reponse Mishell
Je n'esperais plus avoir de reponse
Et en plus tout fonctionne parfaitement
GRD GRD MERCI
--
IMER09


"Mishell" wrote:

Bonjour.

Remplace C = ComboBox7
par
(C = ComboBox7 Or ComboBox7 = "")
en n'oubliant pas les parenthèses

Remplace C.Offset(, -33) = ComboBox1
par
(C.Offset(, -33) = ComboBox1 Or ComboBox1 = "")

etc...

Mishell


"IMER09" wrote in message
news:
> Ma question precedente n'etait vraiment pas tres claire!!
>
> Je voudrai filtrer les données de ma feuil1 pour les copier sur ma feuil2
> je voudrai rendre ce filtrage un peu plus convivial qu'avec DONNEE/filtre
> auto ou Filtre elabore
> J'ai donc creer un UF avec 8CBX pour les 8 colonnes a filtrer
> Quand les 8 cbx sont renseignés pas de probleme mais si je laisse une ou
> plusieur CBX en blanc (parce que je ne veux pas filtrer sur ce ou ces
> criteres) je ne recupere aucune donnée
> Est ce que quelqu un aurait une idée
>
> Une partie de mon code est le suivant:
>
> Dim Ligne As Long, C As Range
> Dim Rg As Range, A As Integer
> With Sheets(ShDepart)
> Ligne = .Range("A65536").End(xlUp).Row + 1
>
> Set Rg = Range("AJ4", Range("AJ65536").End(xlUp))
>
> For Each C In Rg
> If C = ComboBox7 And C.Offset(, -33) = ComboBox1 _
> And C.Offset(, -29) = ComboBox3 And C.Offset(, -30) = ComboBox4
> And _
> C.Offset(, -32) = ComboBox5 And C.Offset(, -31) = ComboBox6 And
> _
> C.Offset(, -28) = ComboBox8 Then
> For A = 1 To 41
> .Cells(Ligne, A) = Cells(C.Row, A)
> Next
> Ligne = Ligne + 1
> End If
> Next
> End with
>
> Merci
> --
> IMER09





Avatar
Mishell
Avec grand plaisir.

Mishell

"IMER09" wrote in message
news:
Quelle bonne surprise ce matin en voyant ta reponse Mishell
Je n'esperais plus avoir de reponse
Et en plus tout fonctionne parfaitement
GRD GRD MERCI
--
IMER09


"Mishell" wrote:

Bonjour.

Remplace C = ComboBox7
par
(C = ComboBox7 Or ComboBox7 = "")
en n'oubliant pas les parenthèses

Remplace C.Offset(, -33) = ComboBox1
par
(C.Offset(, -33) = ComboBox1 Or ComboBox1 = "")

etc...

Mishell


"IMER09" wrote in message
news:
> Ma question precedente n'etait vraiment pas tres claire!!
>
> Je voudrai filtrer les données de ma feuil1 pour les copier sur ma
> feuil2
> je voudrai rendre ce filtrage un peu plus convivial qu'avec
> DONNEE/filtre
> auto ou Filtre elabore
> J'ai donc creer un UF avec 8CBX pour les 8 colonnes a filtrer
> Quand les 8 cbx sont renseignés pas de probleme mais si je laisse une
> ou
> plusieur CBX en blanc (parce que je ne veux pas filtrer sur ce ou ces
> criteres) je ne recupere aucune donnée
> Est ce que quelqu un aurait une idée
>
> Une partie de mon code est le suivant:
>
> Dim Ligne As Long, C As Range
> Dim Rg As Range, A As Integer
> With Sheets(ShDepart)
> Ligne = .Range("A65536").End(xlUp).Row + 1
>
> Set Rg = Range("AJ4", Range("AJ65536").End(xlUp))
>
> For Each C In Rg
> If C = ComboBox7 And C.Offset(, -33) = ComboBox1 _
> And C.Offset(, -29) = ComboBox3 And C.Offset(, -30) =
> ComboBox4
> And _
> C.Offset(, -32) = ComboBox5 And C.Offset(, -31) = ComboBox6
> And
> _
> C.Offset(, -28) = ComboBox8 Then
> For A = 1 To 41
> .Cells(Ligne, A) = Cells(C.Row, A)
> Next
> Ligne = Ligne + 1
> End If
> Next
> End with
>
> Merci
> --
> IMER09