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

Probleme d'extraction dans mes filtres

1 réponse
Avatar
magic-dd
bonjour

suite =E0 une pr=E9c=E9dente demande, j'ai un souci sur une macro

lorsque dans la colonne DEDE, il n'y a qu'un critere pour toute la
colonne (exemple 4) cela me met un #ref dans l'extraction

en revanche sui le critere 4 appara=EEt 2 fois dans la colonne, la
routine fonctionne correctement,

donc des que le 1er critere de recherche se trouve seul et en premiere
ligne cela ne marche pas

j'ai essay=E9 de mettre la valeur 4 dans la colonne DEDE mais en 2 eme
ligne et cela fonctionne



voici le code et le fichier joint

http://cjoint.com/?ADCkORsBxYO

Sub test()

Rows("29:45").Select
Selection.Delete Shift:=3DxlUp
Range("A1").Select
Dim Rg As Range, A As Integer, Sh As Worksheet
Set Sh =3D Worksheets("Feuil2")
On Error Resume Next
Application.ScreenUpdating =3D False
With Sh
Set Rg =3D .Range("C2:K15")
A =3D 2
'Pour chacune des colonnes, tu appliques un filtre auto.
For Each c In Array(7, 8, 9) 'numerotation des colonnes depuis
le debut de la selection filtree soit en C2
With Rg
.AutoFilter field:=3Dc, Criteria1:=3DRange("b14").Value
.Columns(1).SpecialCells(xlCellTypeVisible).Copy
Sh.Cells(30, A) 'copie des donnees dans la colonne filtree
Sh.Cells(30, A) =3D .Item(1, c) 'copie du titre de colonne
filtree
End With

.ShowAllData
A =3D A + 1
Next
' Application.ScreenUpdating =3D True
Selection.AutoFilter
End With

Application.ScreenUpdating =3D True
End Sub

merci de votre aide je craque

1 réponse

Avatar
FFO
On 28 avr, 10:44, magic-dd wrote:
bonjour

suite à une précédente demande, j'ai un souci sur une macro

lorsque dans la colonne DEDE, il n'y a qu'un critere pour toute la
colonne (exemple 4) cela me met un #ref dans l'extraction

en revanche sui le critere 4 apparaît 2 fois dans la colonne, la
routine fonctionne correctement,

donc des que le 1er critere de recherche se trouve seul et en premiere
ligne cela ne marche pas

j'ai essayé de mettre la valeur 4 dans la colonne DEDE mais en 2 eme
ligne et cela fonctionne

voici le code et le fichier joint

       http://cjoint.com/?ADCkORsBxYO

Sub test()

    Rows("29:45").Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
Dim Rg As Range, A As Integer, Sh As Worksheet
Set Sh = Worksheets("Feuil2")
On Error Resume Next
Application.ScreenUpdating = False
With Sh
    Set Rg = .Range("C2:K15")
        A = 2
        'Pour chacune des colonnes, tu appliques un filtre auto.
    For Each c In Array(7, 8, 9)   'numerotation des colonnes depui s
le debut de la selection filtree soit en C2
        With Rg
            .AutoFilter field:=c, Criteria1:=Range("b14") .Value
            .Columns(1).SpecialCells(xlCellTypeVisible).Copy
Sh.Cells(30, A) 'copie des donnees dans la colonne filtree
            Sh.Cells(30, A) = .Item(1, c)  'copie du titr e de colonne
filtree
        End With

        .ShowAllData
        A = A + 1
    Next
 '   Application.ScreenUpdating = True
Selection.AutoFilter
End With

Application.ScreenUpdating = True
End Sub

merci de votre aide je craque



Salut à toi

Je mettrais :

With Rg
.AutoFilter field:=c, Criteria1:=Range("b14").Value
.Columns(1).SpecialCells(xlCellTypeVisible).Copy
Sh.Cells(30, A) 'copie des donnees dans la colonne filtree
Sh.Cells(30, A) = .Item(1, c) 'copie du titre de colonne
filtree
End With

comme ceci :

With Rg
.AutoFilter field:=c, Criteria1:=Range("b14").Value
.Columns(1).SpecialCells(xlCellTypeVisible).Copy
Sh.Cells(30, A).PasteSpecial Paste:=xlPasteValues 'copie
des donnees dans la colonne filtree
Sh.Cells(30, A) = .Item(1, c) 'copie du titre de colonne
filtree
End With

Celà devrait mieux faire

Dis moi !!!!!!