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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <Cline06@discussions.microsoft.com> a écrit dans le message de
news: 2278F192-FBDB-4EC7-99DC-7A87FB1E5F22@microsoft.com...
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.
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
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
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" <Cline06@discussions.microsoft.com> a écrit dans le message de
news: 2278F192-FBDB-4EC7-99DC-7A87FB1E5F22@microsoft.com...
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 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
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
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" <Cline06@discussions.microsoft.com> a écrit dans le message de
news: B541202F-08EC-4408-A016-E80D4BA7B4F6@microsoft.com...
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" <Cline06@discussions.microsoft.com> a écrit dans le message de
news: 2278F192-FBDB-4EC7-99DC-7A87FB1E5F22@microsoft.com...
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.
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.