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

Rechercher lignes et ne coller que certaines cellules

1 réponse
Avatar
suze32
Bonjour,

J'ai une base de donn=E9e, en feuille 2, qui se pr=E9sente sur 4
colonnes : A : Nom ou Raison sociale; B : Date d'encaissement; C :
Commentaires; D : Montant. Une de mes maccros rep=E8re dans ma base de
donn=E9e les lignes o=F9 il y a la date d'aujourd'hui (colonne B), il les
copie et les colle dans ma feuille 1. Cependant j'aimerai qu'il ne
colle que les cellules de la colonne A et de la collone D (nom et
montant) qui correspondent =E0 la date d'aujourd'hui.
Voici comment se pr=E9sente la maccro actuelle :

Sub Traitement_Date()
'
'
If Sheets("Feuil1").Range("J5") <> "" Then
Sheets("Feuil1").Range("J" &
Sheets("Feuil1").Range("J65535").End(xlUp).Row, "M5").Clear
End If
Sheets("Feuil2").Activate
For Each C In Worksheets("Feuil2").Range("B2", "B" &
Sheets("Feuil2").Range("B65535").End(xlUp).Row)
If C =3D Date Then
If Sheets("Feuil1").Range("J5") <> "" Then
Range("A" & C.Row, "D" & C.Row).Copy
Sheets("Feuil1").Range("J65535").End(xlUp).Offset(1, 0)
Else
Range("A" & C.Row, "D" & C.Row).Copy Sheets("Feuil1").Range("J5")
End If
End If
Next
Sheets("Feuil1").Activate
End Sub

Merci pour votre aide
Bonne journ=E9e

Suze32

1 réponse

Avatar
Youky
Bonjour Suze,
J'ai mis des apostrophes sur les lignes changées
j'ai utilisé le codename des feuilles qui est plus efficace si on renomme
les onglets
Youky

Sub Traitement_Date()
'
If Feuil1.[J5] <> "" Then
Feuil1.Range("J" & _
Feuil1.[J65535].End(xlUp).Row, "M5").Clear
End If
'Feuil2.Activate
For Each c In Feuil2.Range("B2", "B" & _
Feuil2.[B65535].End(xlUp).Row)
If c = Date Then
If Feuil1.[J5] <> "" Then
Feuil1.[J65536].End(xlUp).Offset(1, 0) = _
Feuil2.Cells(c.Row, 1)
Feuil1.[J65536].End(xlUp).Offset(1, 1) = _
Feuil2.Cells(c.Row, 4)
'Range("A" & c.Row, "D" & c.Row).Copy _
Sheets("Feuil1").Range("J65535").End(xlUp).Offset(1, 0)
Else
Feuil1.[J5] = Feuil2.Cells(c.Row, 1)
Feuil1.[K5] = Feuil2.Cells(c.Row, 4)
'Range("A" & c.Row, "D" & c.Row).Copy Sheets("Feuil1").Range("J5")
End If
End If
Next
'Sheets("Feuil1").Activate
End Sub


"suze32" a écrit dans le message de news:

Bonjour,

J'ai une base de donnée, en feuille 2, qui se présente sur 4
colonnes : A : Nom ou Raison sociale; B : Date d'encaissement; C :
Commentaires; D : Montant. Une de mes maccros repère dans ma base de
donnée les lignes où il y a la date d'aujourd'hui (colonne B), il les
copie et les colle dans ma feuille 1. Cependant j'aimerai qu'il ne
colle que les cellules de la colonne A et de la collone D (nom et
montant) qui correspondent à la date d'aujourd'hui.
Voici comment se présente la maccro actuelle :

Sub Traitement_Date()
'
'
If Sheets("Feuil1").Range("J5") <> "" Then
Sheets("Feuil1").Range("J" &
Sheets("Feuil1").Range("J65535").End(xlUp).Row, "M5").Clear
End If
Sheets("Feuil2").Activate
For Each C In Worksheets("Feuil2").Range("B2", "B" &
Sheets("Feuil2").Range("B65535").End(xlUp).Row)
If C = Date Then
If Sheets("Feuil1").Range("J5") <> "" Then
Range("A" & C.Row, "D" & C.Row).Copy
Sheets("Feuil1").Range("J65535").End(xlUp).Offset(1, 0)
Else
Range("A" & C.Row, "D" & C.Row).Copy Sheets("Feuil1").Range("J5")
End If
End If
Next
Sheets("Feuil1").Activate
End Sub

Merci pour votre aide
Bonne journée

Suze32