Plutot filtrer que trier

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P
Le #17415911
Avec cette ligne corrigée je suppose que cela devrait convenir.

Set Rg = Range("AJ4:AJ", Range("AJ65536").End(xlUp))
IMER09
Le #17417321
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))





Mishell
Le #17423781
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" 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


IMER09
Le #17434191
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" 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





Mishell
Le #17442391
Avec grand plaisir.

Mishell

"IMER09" 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" 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







Publicité
Poster une réponse
Anonyme