OVH Cloud OVH Cloud

Recopie

3 réponses
Avatar
Céline06
Bonjour,

Je sais que j'insiste mais samedi, n'ayant pas recu de reponse a ma
question, je retente ma chance :-). Peut être qu'elle n'etait pas trés
claire, mais voila ce que ca donnait:

"j'ai cette macro (associée à un bouton) qui recopie les lignes An et Bn de
la feuille 1 dans les lignes An et Bn de la feuille 2 ("n" est un nombre
quelquonque), lorsque une ligne de la colonne K comporte un X.

Sub CommandButton1_Click()
Dim Cell, MaPlageLC As Range
Set MaPlageLC = Range("K1:K17") 'à adpater
i = 0
For Each Cell In MaPlageLC
If Cell = "LC" Then
Do
i = i + 1
Loop Until IsEmpty(Range("Z" & i))
Feuil2.Range("A" & i) = Cell.Offset(0, -10)
Feuil2.Range("B" & i) = Cell.Offset(0, -9)
End If
Next
End Sub

Mon problème c'est que si K2 comporte une "X", les données de feuil1A2 et
feuil1B2 sont recopiées en feuil2A1 et feuil2B1 (ce qui est parfait car je ne
veux pas de lignes vides lorsqu'une case n'est pas cochée) mais si aprés je
coche K1 alors les données se recopient au dessus des premières (issues de la
croix en K2). C'est logique mais je voudrais plutot que les lignes se
recopient les unes apres les autres sans faire attention a leur ordre sur la
feuille 1. En effet, comme ces données seront suivies d'autres éléments dans
les colonnes C, D, Etc, si les colonnes A et B varient dés que je coche une
case, la suite sera désorganisée.
J'espère vraiment que je suis claire. Je suis pas sûre du tout! lol

De plus, est ce que quelqu'un peut me dire par quoi je dois remplacer le
"feuil2.range(....) si je veux faire le lien avec un autre classeur et non
pas avec une autre feuille.

Merci pour votre aide (qui m'est vraiment super utile)"

si quelqu'un a une petite idée, ca m'aiderait car je seche là dessus.

merci

3 réponses

Avatar
Daniel
Bonjour.
Je te propose le code suivant.
J'essaierai de l'adapter pour 2 classeurs un peu plus tard.
Dim Ligne As Integer
Dim Cell, MaPlageLC As Range
Sheets("Feuil2").Select
[A1].Select
Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Ligne = ActiveCell.Row
Sheets("Feuil1").Select
Set MaPlageLC = Range("K1:K17") 'à adpater
For Each Cell In MaPlageLC
If Cell = "X" Then
Feuil2.Range("A" & Ligne).Value = Cell.Offset(0, -10)
Feuil2.Range("A" & Ligne).Offset(0, 1).Value = Cell.Offset(0, -9)
Ligne = Ligne + 1
End If
Next
Cordialement.
Daniel
"Céline06" a écrit dans le message de
news:
Bonjour,

Je sais que j'insiste mais samedi, n'ayant pas recu de reponse a ma
question, je retente ma chance :-). Peut être qu'elle n'etait pas trés
claire, mais voila ce que ca donnait:

"j'ai cette macro (associée à un bouton) qui recopie les lignes An et Bn
de
la feuille 1 dans les lignes An et Bn de la feuille 2 ("n" est un nombre
quelquonque), lorsque une ligne de la colonne K comporte un X.

Sub CommandButton1_Click()
Dim Cell, MaPlageLC As Range
Set MaPlageLC = Range("K1:K17") 'à adpater
i = 0
For Each Cell In MaPlageLC
If Cell = "LC" Then
Do
i = i + 1
Loop Until IsEmpty(Range("Z" & i))
Feuil2.Range("A" & i) = Cell.Offset(0, -10)
Feuil2.Range("B" & i) = Cell.Offset(0, -9)
End If
Next
End Sub

Mon problème c'est que si K2 comporte une "X", les données de feuil1A2 et
feuil1B2 sont recopiées en feuil2A1 et feuil2B1 (ce qui est parfait car je
ne
veux pas de lignes vides lorsqu'une case n'est pas cochée) mais si aprés
je
coche K1 alors les données se recopient au dessus des premières (issues de
la
croix en K2). C'est logique mais je voudrais plutot que les lignes se
recopient les unes apres les autres sans faire attention a leur ordre sur
la
feuille 1. En effet, comme ces données seront suivies d'autres éléments
dans
les colonnes C, D, Etc, si les colonnes A et B varient dés que je coche
une
case, la suite sera désorganisée.
J'espère vraiment que je suis claire. Je suis pas sûre du tout! lol

De plus, est ce que quelqu'un peut me dire par quoi je dois remplacer le
"feuil2.range(....) si je veux faire le lien avec un autre classeur et non
pas avec une autre feuille.

Merci pour votre aide (qui m'est vraiment super utile)"

si quelqu'un a une petite idée, ca m'aiderait car je seche là dessus.

merci



Avatar
Céline06
Merci beaucoup pour ta réponse. Par contre, je n'arrive pas a faire
fonctionner ta macro. J'avoue que j'ai un peu de mal a comprendre le debut et
que j'ai du mal a l'adapter.
Si tu veux, je te refais un résumé plus simple de ce que je voudrais faire.
Je souhaite recopier sur la feuille 2, les données des colonnes A et B de la
feuille 1 si dans la colonne C il y a "X". Je voudrais que tout cela se
recopie sans lignes vides (par exemple si il n'y a pas de "x" dans C1 et que
dans C2, oui). De plus, il faut que les lignes se recopient et ne se
deplacent pas lorsque je recoche une autre cellule.
C'est le problème de la macro que j'ai. Si les lignes A2 et B2 sont
recopiées (car C2 est coché) en A1 et B1 de la feuille 2 et que je coche la
ligne C1 en feuil1, alors A1 et B1 vont se recopier avant la 1ére ligne deja
recopié ce qui decale toutes mes lignes.
Voila, je suis pas certaine que ce soit plus clair lol

Merci en tout cas pour ton aide. J'ai un peu de mal avec les macros alors je
dois bricoler avec des formules pour arriver a ce que je veux mais c'est
vraiment pas terrible comme resultat.



Bonjour.
Je te propose le code suivant.
J'essaierai de l'adapter pour 2 classeurs un peu plus tard.
Dim Ligne As Integer
Dim Cell, MaPlageLC As Range
Sheets("Feuil2").Select
[A1].Select
Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Ligne = ActiveCell.Row
Sheets("Feuil1").Select
Set MaPlageLC = Range("K1:K17") 'à adpater
For Each Cell In MaPlageLC
If Cell = "X" Then
Feuil2.Range("A" & Ligne).Value = Cell.Offset(0, -10)
Feuil2.Range("A" & Ligne).Offset(0, 1).Value = Cell.Offset(0, -9)
Ligne = Ligne + 1
End If
Next
Cordialement.
Daniel
"Céline06" a écrit dans le message de
news:
Bonjour,

Je sais que j'insiste mais samedi, n'ayant pas recu de reponse a ma
question, je retente ma chance :-). Peut être qu'elle n'etait pas trés
claire, mais voila ce que ca donnait:

"j'ai cette macro (associée à un bouton) qui recopie les lignes An et Bn
de
la feuille 1 dans les lignes An et Bn de la feuille 2 ("n" est un nombre
quelquonque), lorsque une ligne de la colonne K comporte un X.

Sub CommandButton1_Click()
Dim Cell, MaPlageLC As Range
Set MaPlageLC = Range("K1:K17") 'à adpater
i = 0
For Each Cell In MaPlageLC
If Cell = "LC" Then
Do
i = i + 1
Loop Until IsEmpty(Range("Z" & i))
Feuil2.Range("A" & i) = Cell.Offset(0, -10)
Feuil2.Range("B" & i) = Cell.Offset(0, -9)
End If
Next
End Sub

Mon problème c'est que si K2 comporte une "X", les données de feuil1A2 et
feuil1B2 sont recopiées en feuil2A1 et feuil2B1 (ce qui est parfait car je
ne
veux pas de lignes vides lorsqu'une case n'est pas cochée) mais si aprés
je
coche K1 alors les données se recopient au dessus des premières (issues de
la
croix en K2). C'est logique mais je voudrais plutot que les lignes se
recopient les unes apres les autres sans faire attention a leur ordre sur
la
feuille 1. En effet, comme ces données seront suivies d'autres éléments
dans
les colonnes C, D, Etc, si les colonnes A et B varient dés que je coche
une
case, la suite sera désorganisée.
J'espère vraiment que je suis claire. Je suis pas sûre du tout! lol

De plus, est ce que quelqu'un peut me dire par quoi je dois remplacer le
"feuil2.range(....) si je veux faire le lien avec un autre classeur et non
pas avec une autre feuille.

Merci pour votre aide (qui m'est vraiment super utile)"

si quelqu'un a une petite idée, ca m'aiderait car je seche là dessus.

merci








Avatar
Daniel
Céline,
la macro fonctionne lorsqu'il y a un X en colonne K - comme tu l'avais dit
dans ton premier post.
Cordialement.
Daniel
"Céline06" a écrit dans le message de
news:
Merci beaucoup pour ta réponse. Par contre, je n'arrive pas a faire
fonctionner ta macro. J'avoue que j'ai un peu de mal a comprendre le debut
et
que j'ai du mal a l'adapter.
Si tu veux, je te refais un résumé plus simple de ce que je voudrais
faire.
Je souhaite recopier sur la feuille 2, les données des colonnes A et B de
la
feuille 1 si dans la colonne C il y a "X". Je voudrais que tout cela se
recopie sans lignes vides (par exemple si il n'y a pas de "x" dans C1 et
que
dans C2, oui). De plus, il faut que les lignes se recopient et ne se
deplacent pas lorsque je recoche une autre cellule.
C'est le problème de la macro que j'ai. Si les lignes A2 et B2 sont
recopiées (car C2 est coché) en A1 et B1 de la feuille 2 et que je coche
la
ligne C1 en feuil1, alors A1 et B1 vont se recopier avant la 1ére ligne
deja
recopié ce qui decale toutes mes lignes.
Voila, je suis pas certaine que ce soit plus clair lol

Merci en tout cas pour ton aide. J'ai un peu de mal avec les macros alors
je
dois bricoler avec des formules pour arriver a ce que je veux mais c'est
vraiment pas terrible comme resultat.



Bonjour.
Je te propose le code suivant.
J'essaierai de l'adapter pour 2 classeurs un peu plus tard.
Dim Ligne As Integer
Dim Cell, MaPlageLC As Range
Sheets("Feuil2").Select
[A1].Select
Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Ligne = ActiveCell.Row
Sheets("Feuil1").Select
Set MaPlageLC = Range("K1:K17") 'à adpater
For Each Cell In MaPlageLC
If Cell = "X" Then
Feuil2.Range("A" & Ligne).Value = Cell.Offset(0, -10)
Feuil2.Range("A" & Ligne).Offset(0, 1).Value = Cell.Offset(0, -9)
Ligne = Ligne + 1
End If
Next
Cordialement.
Daniel
"Céline06" a écrit dans le message de
news:
Bonjour,

Je sais que j'insiste mais samedi, n'ayant pas recu de reponse a ma
question, je retente ma chance :-). Peut être qu'elle n'etait pas trés
claire, mais voila ce que ca donnait:

"j'ai cette macro (associée à un bouton) qui recopie les lignes An et
Bn
de
la feuille 1 dans les lignes An et Bn de la feuille 2 ("n" est un
nombre
quelquonque), lorsque une ligne de la colonne K comporte un X.

Sub CommandButton1_Click()
Dim Cell, MaPlageLC As Range
Set MaPlageLC = Range("K1:K17") 'à adpater
i = 0
For Each Cell In MaPlageLC
If Cell = "LC" Then
Do
i = i + 1
Loop Until IsEmpty(Range("Z" & i))
Feuil2.Range("A" & i) = Cell.Offset(0, -10)
Feuil2.Range("B" & i) = Cell.Offset(0, -9)
End If
Next
End Sub

Mon problème c'est que si K2 comporte une "X", les données de feuil1A2
et
feuil1B2 sont recopiées en feuil2A1 et feuil2B1 (ce qui est parfait car
je
ne
veux pas de lignes vides lorsqu'une case n'est pas cochée) mais si
aprés
je
coche K1 alors les données se recopient au dessus des premières (issues
de
la
croix en K2). C'est logique mais je voudrais plutot que les lignes se
recopient les unes apres les autres sans faire attention a leur ordre
sur
la
feuille 1. En effet, comme ces données seront suivies d'autres éléments
dans
les colonnes C, D, Etc, si les colonnes A et B varient dés que je coche
une
case, la suite sera désorganisée.
J'espère vraiment que je suis claire. Je suis pas sûre du tout! lol

De plus, est ce que quelqu'un peut me dire par quoi je dois remplacer
le
"feuil2.range(....) si je veux faire le lien avec un autre classeur et
non
pas avec une autre feuille.

Merci pour votre aide (qui m'est vraiment super utile)"

si quelqu'un a une petite idée, ca m'aiderait car je seche là dessus.

merci