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

Copie automatique de certaines lignes suivant une condition

10 réponses
Avatar
Guido
Bonjour,

je voudrais copier des donn=E9es sur des lignes qui ne se suivent pas
forc=E9ment d'une base de donn=E9e vers une autre feuille. La condition
pour qu'elles soient recopi=E9es =E9tant le chiffre 1 dans la cellule
correspondante =E0 la colonne J.

Exemple: J4 =3D 1 copie dans la feuille 2
J9 =3D 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido

10 réponses

Avatar
Daniel
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido
Avatar
MichDenis
Tu fais un filtre automatique sur la colonne où sont contenu tes "1"
Tu sélectionnes le tableau des résultats avec la ligne de titre ou non
selon que tu veuilles la copiée avec les données vers la nouvelle destination.
Tu utilises la commande : Édition / Atteindre / cellules / cellules visible seulement
et tu fais un copier-coller vers la plage de destination.

Au besoin, tu peux réaliser ceci par Macro. Dans la cas où la plage
de cellules est importante, c'est une technique très rapide !



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

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido
Avatar
Guido
Hello MichDenis,

merci pour ta solution. J'y avais pensé. Mais comme ce chiffre 1 est appelé
à changer et à être transférer sur plusieurs tableaux. Je vais essayer la
solution de Daniel.

Merci à toi et encore une bonne année 2007.

Guido


"MichDenis" a écrit dans le message de
news:
Tu fais un filtre automatique sur la colonne où sont contenu tes "1"
Tu sélectionnes le tableau des résultats avec la ligne de titre ou non
selon que tu veuilles la copiée avec les données vers la nouvelle
destination.

Tu utilises la commande : Édition / Atteindre / cellules / cellules
visible seulement

et tu fais un copier-coller vers la plage de destination.

Au besoin, tu peux réaliser ceci par Macro. Dans la cas où la plage
de cellules est importante, c'est une technique très rapide !



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

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido




Avatar
Guido
Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette solution
existe aussi, si l'on désire uniquement copier ce qui ce trouve dans les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne A.

Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido




Avatar
Daniel
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette solution
existe aussi, si l'on désire uniquement copier ce qui ce trouve dans les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne A.

Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido








Avatar
Guido
Hello Daniel,

Merci. Super.
Et si j'ose abuser.
En laissant la ligne n° 1 de la feuil2, comment cela devrait-il être corrigé
?

Merci de tes réponses

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette
solution


existe aussi, si l'on désire uniquement copier ce qui ce trouve dans les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne A.

Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido












Avatar
Daniel
Remplace la ligne :
Ligne = 1
par :
Ligne = 2
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,

Merci. Super.
Et si j'ose abuser.
En laissant la ligne n° 1 de la feuil2, comment cela devrait-il être
corrigé
?

Merci de tes réponses

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette
solution


existe aussi, si l'on désire uniquement copier ce qui ce trouve dans
les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne A.

Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido
















Avatar
Guido
Bonsoir Daniel,

Ma dernière question je pense.

Si j'ai les chiffres 1 à 7 pour déterminer 7 catégories différentes.
Dois-je copier et modifier ton code sept fois ? ou existe-t-il une solution
qui permettrait d'avoir cette distinction comme une formule SI
Il s'agirait qu'à chaque numéro différent, les données de la colonne D se
copient dans feuille distincte faisant référence au chiffre.

Merci pour ton aide.

Guido


"Daniel" a écrit dans le message de
news:%23$
Remplace la ligne :
Ligne = 1
par :
Ligne = 2
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,

Merci. Super.
Et si j'ose abuser.
En laissant la ligne n° 1 de la feuil2, comment cela devrait-il être
corrigé
?

Merci de tes réponses

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette
solution


existe aussi, si l'on désire uniquement copier ce qui ce trouve dans
les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne
A.





Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido




















Avatar
Daniel
Bonsoir.
Non testé :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne(7) As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne(1) = 2
Ligne(2) = 2
Ligne(3) = 2
Ligne(4) = 2
Ligne(5) = 2
Ligne(6) = 2
Ligne(7) = 2
For Each c In Plage
If c.Offset(0, 9) >= 1 And c.Offset(0, 9) <= 7 Then
c.Offset(0, 3).Copy Sheets("F" & c.Offset(0,
9)).Cells(Ligne(c.Offset(0, 9)), 1)
Ligne(c.Offset(0, 9)) = Ligne(c.Offset(0, 9)) + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:
%
Bonsoir Daniel,

Ma dernière question je pense.

Si j'ai les chiffres 1 à 7 pour déterminer 7 catégories différentes.
Dois-je copier et modifier ton code sept fois ? ou existe-t-il une
solution
qui permettrait d'avoir cette distinction comme une formule SI
Il s'agirait qu'à chaque numéro différent, les données de la colonne D se
copient dans feuille distincte faisant référence au chiffre.

Merci pour ton aide.

Guido


"Daniel" a écrit dans le message de
news:%23$
Remplace la ligne :
Ligne = 1
par :
Ligne = 2
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,

Merci. Super.
Et si j'ose abuser.
En laissant la ligne n° 1 de la feuil2, comment cela devrait-il être
corrigé
?

Merci de tes réponses

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette
solution


existe aussi, si l'on désire uniquement copier ce qui ce trouve dans
les
cellules de la colonne D de la feuil1 dans la feuil2 dans la colonne
A.





Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent pas
forcément d'une base de donnée vers une autre feuille. La condition
pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido

























Avatar
Guido
Bonsoir Daniel,

J'ai essayé ton dernier code, mais il me donne une erreur d'exécution 9.

Mais je pense aussi m'être mal exprimé. Je désire que selon le chiffre dans
la colonne J de la feuille membre (1 à 7), le nom de la personne
correspondante à ce chiffre se place dans la feuille numérotée comme elle.
Exemple. Monsieur AAAAA = 1 --> va se copier dans feuil1
Madame CCCCC = 3 --> va se copier dans la feuil3
et ainsi de suite.

les lignes que tu m'as mises n'ont pas servi à grand chose.
Ligne(1) = 2
Ligne(2) = 2
Ligne(3) = 2
Ligne(4) = 2
Ligne(5) = 2
Ligne(6) = 2
Ligne(7) = 2


Si tu permets, je te mets une copie de mon tableau pour que tu puisses te
rendre compte de ce que j'essaie d'obtenir.
http://cjoint.com/?bvw1BHRXiw
A bientôt et merci de ton aide.

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Non testé :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne(7) As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne(1) = 2
Ligne(2) = 2
Ligne(3) = 2
Ligne(4) = 2
Ligne(5) = 2
Ligne(6) = 2
Ligne(7) = 2
For Each c In Plage
If c.Offset(0, 9) >= 1 And c.Offset(0, 9) <= 7 Then
c.Offset(0, 3).Copy Sheets("F" & c.Offset(0,
9)).Cells(Ligne(c.Offset(0, 9)), 1)
Ligne(c.Offset(0, 9)) = Ligne(c.Offset(0, 9)) + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:
%
Bonsoir Daniel,

Ma dernière question je pense.

Si j'ai les chiffres 1 à 7 pour déterminer 7 catégories différentes.
Dois-je copier et modifier ton code sept fois ? ou existe-t-il une
solution
qui permettrait d'avoir cette distinction comme une formule SI
Il s'agirait qu'à chaque numéro différent, les données de la colonne D
se


copient dans feuille distincte faisant référence au chiffre.

Merci pour ton aide.

Guido


"Daniel" a écrit dans le message de
news:%23$
Remplace la ligne :
Ligne = 1
par :
Ligne = 2
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,

Merci. Super.
Et si j'ose abuser.
En laissant la ligne n° 1 de la feuil2, comment cela devrait-il être
corrigé
?

Merci de tes réponses

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.Offset(0, 3).Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Hello Daniel,
je te remercie pour ces lignes.
Je voudrais savoir toujours, dans le même cas de figure, si cette
solution


existe aussi, si l'on désire uniquement copier ce qui ce trouve
dans






les
cellules de la colonne D de la feuil1 dans la feuil2 dans la
colonne






A.

Merci pour ton aide

Guido


"Daniel" a écrit dans le message de
news:
Bonsoir.
Essaie :

Sub RecopieSelective()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = 1
For Each c In Plage
If c.Offset(0, 9) = 1 Then
c.EntireRow.Copy Sheets("Feuil2").Cells(Ligne, 1)
Ligne = Ligne + 1
End If
Next c
End Sub

Cordialement.
Daniel
"Guido" a écrit dans le message de news:

Bonjour,

je voudrais copier des données sur des lignes qui ne se suivent
pas







forcément d'une base de donnée vers une autre feuille. La
condition







pour qu'elles soient recopiées étant le chiffre 1 dans la cellule
correspondante à la colonne J.

Exemple: J4 = 1 copie dans la feuille 2
J9 = 1 copie dans la feuille 2
etc...

qui peut m'aider, je vous en remercie d'avance

Guido