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

Macro , pas trés compliqué , trop pour moi

5 réponses
Avatar
MiMate
Bonjour,

J'ai un classeur avec deux feuilles.

Je souhaite créer une macro qui copie les lignes de ma feuille 1 vers ma
feuille 2 lorsque la valeur de la colonne B de la feuille 1 = 123(par
exemple).

Pour corser le tout je voudrais que la macro insert la ligne copiée ( pas un
simple collé) à partir par exemple de la ligne 20, puis la seconde ligne
insérée en dessous.

Pas très facile à expliquer, si quelqu'un à une solution merci

5 réponses

Avatar
poy-poy
Bonjour Mimate,

De ce que j'ai compris, ce serait quelquechose du genre :
avec la feuille appelé Feu1 et la feuille 2 appelé Feu2 et 100 lignes à
tester en feuile 1

sub essai()
dim k as integer, q as integer

q=0
sheets("Feu1").select
for k = 1 to 100
if cells(k,2) = 123 then 'mets la condition que tu veux ici
cells(k,1).entirerow.copy
q=q+1
sheets("Feu2").cells(20+q,1).insert shift:=xldown
end if
next k

end sub

Cordialement
Benjamin


Bonjour,

J'ai un classeur avec deux feuilles.

Je souhaite créer une macro qui copie les lignes de ma feuille 1 vers ma
feuille 2 lorsque la valeur de la colonne B de la feuille 1 = 123(par
exemple).

Pour corser le tout je voudrais que la macro insert la ligne copiée ( pas un
simple collé) à partir par exemple de la ligne 20, puis la seconde ligne
insérée en dessous.

Pas très facile à expliquer, si quelqu'un à une solution merci





Avatar
MiMate
Bonsoir,

Merci pour la réponse, mais la macro ne semble pas fonctionner.
Il n'y a pas d'erreur d'execution mais aucune données ne sont copier vers ma
"feu2".

J'essai de comprendre la macro :

tout d'abord elle selectionne la "feu1", ensuite la zone a interroger est
définie (for k = 1 to 100).

Après la valeur défini est recherché dans la plage (If Cells(k, 2) = 1
Then). Dans ce cas la valeur "1" est recherché dans la colonne "2" de la
zone "k".

Quand la valeur est trouvée, la ligne est copiée (cells(k,1).entirerow.copy)
Ensuite la "feu2" est selectionnée, et la ligne copiée est collée à la
colonne 20.


Je vois pas où ça cloche ?

J'ai vérifié le nom des mes feuilles, fait différents tests mais rien a
faire.

MiMate






"poy-poy" a écrit dans le message de
news:
Bonjour Mimate,

De ce que j'ai compris, ce serait quelquechose du genre :
avec la feuille appelé Feu1 et la feuille 2 appelé Feu2 et 100 lignes à
tester en feuile 1

sub essai()
dim k as integer, q as integer

q=0
sheets("Feu1").select
for k = 1 to 100
if cells(k,2) = 123 then 'mets la condition que tu veux ici
cells(k,1).entirerow.copy
q=q+1
sheets("Feu2").cells(20+q,1).insert shift:=xldown
end if
next k

end sub

Cordialement
Benjamin


Bonjour,

J'ai un classeur avec deux feuilles.

Je souhaite créer une macro qui copie les lignes de ma feuille 1 vers ma
feuille 2 lorsque la valeur de la colonne B de la feuille 1 = 123(par
exemple).

Pour corser le tout je voudrais que la macro insert la ligne copiée (
pas un


simple collé) à partir par exemple de la ligne 20, puis la seconde ligne
insérée en dessous.

Pas très facile à expliquer, si quelqu'un à une solution merci







Avatar
jps
bonsoir MiMate
vérifie si tu as bien écrit ainsi :

sheets("Feu2").cells(20+q,1).insert shift::=xldown

c'est à dire qu'il ne faut pas oublier le : (deux points) après shift

bon, enfin, si je dis cela, c'est surtout pour soigner mes stats....
jps

"MiMate" a écrit dans le message de
news:
Bonsoir,

Merci pour la réponse, mais la macro ne semble pas fonctionner.
Il n'y a pas d'erreur d'execution mais aucune données ne sont copier vers
ma

"feu2".

J'essai de comprendre la macro :

tout d'abord elle selectionne la "feu1", ensuite la zone a interroger est
définie (for k = 1 to 100).

Après la valeur défini est recherché dans la plage (If Cells(k, 2) = 1
Then). Dans ce cas la valeur "1" est recherché dans la colonne "2" de la
zone "k".

Quand la valeur est trouvée, la ligne est copiée
(cells(k,1).entirerow.copy)

Ensuite la "feu2" est selectionnée, et la ligne copiée est collée à la
colonne 20.


Je vois pas où ça cloche ?

J'ai vérifié le nom des mes feuilles, fait différents tests mais rien a
faire.

MiMate






"poy-poy" a écrit dans le message de
news:
Bonjour Mimate,

De ce que j'ai compris, ce serait quelquechose du genre :
avec la feuille appelé Feu1 et la feuille 2 appelé Feu2 et 100 lignes à
tester en feuile 1

sub essai()
dim k as integer, q as integer

q=0
sheets("Feu1").select
for k = 1 to 100
if cells(k,2) = 123 then 'mets la condition que tu veux ici
cells(k,1).entirerow.copy
q=q+1
sheets("Feu2").cells(20+q,1).insert shift:=xldown
end if
next k

end sub

Cordialement
Benjamin


Bonjour,

J'ai un classeur avec deux feuilles.

Je souhaite créer une macro qui copie les lignes de ma feuille 1 vers
ma



feuille 2 lorsque la valeur de la colonne B de la feuille 1 = 123(par
exemple).

Pour corser le tout je voudrais que la macro insert la ligne copiée (
pas un


simple collé) à partir par exemple de la ligne 20, puis la seconde
ligne



insérée en dessous.

Pas très facile à expliquer, si quelqu'un à une solution merci











Avatar
jps
oups, j'ai oublié de préciser : j'assure l'intérim de poy poy le jeudi
soir...
jps

"MiMate" a écrit dans le message de
news:
Bonsoir,

Merci pour la réponse, mais la macro ne semble pas fonctionner.
Il n'y a pas d'erreur d'execution mais aucune données ne sont copier vers
ma

"feu2".



Avatar
Désolé d'insister mais ça veut toujours pas marché :

Dans ma "feu1" j'ai la colonne A avec les valeurs suivantes : PIERRE, PAUL,
JACQUES,TOTO,TATA
j'ai la colonne B avec les valeurs suivantes : 1
, 2 ,1 ,2 ,2

Je voudrais qu'une macro sur ma "feu2" teste la "feu1" , et que lorsqu'elle
trouve la valeur "2" dans la colonne B, elle copie et insère la ligne
entière dans ma "feu2" (par exemple insertion à la ligne 20).


Merci




"jps" a écrit dans le message de
news:
oups, j'ai oublié de préciser : j'assure l'intérim de poy poy le jeudi
soir...
jps

"MiMate" a écrit dans le message de
news:
Bonsoir,

Merci pour la réponse, mais la macro ne semble pas fonctionner.
Il n'y a pas d'erreur d'execution mais aucune données ne sont copier
vers


ma
"feu2".