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

Macro : test valeur , si ok recopie dans seconde feuiile

3 réponses
Avatar
MiMate
Bonjour,

Petit résumé de mon problème.
J'ai un classeur avec deux feuilles.
La feuille 1 comprend des données que je voudrais insérer sur ma feuille 2.

Feuille 1: colonne A : pierre, paul, jacques, toto, tata
Colonne B : 2,1,3,2,1

Je voudrais que la macro teste ma feuille 1 et que lorsqu"elle trouve la
valeur "2" dans la colonne B, elle copie et insère la ligne dans ma feuille
2 (insertion par exemple à partir de la ligne 20).
Ce qui donnerais dans ma feuille 2 :
ligne 20 colonne A : Pierre // colonne B :2
linge 21 colonne A : Jacques // colonne B :2

Poy Poy m'est déja venu en aide sur ce problème, mais je pense que j'avais
mal expliqué mon problème. Il m'a donnée le code suivant :

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


Après plusieurs test, j'ai compris ce que faisais cette macro. Elle teste la
feuille2 (au lieu de la feuille1), et si elle trouve la valeur recherchée ,
elle insert 100 fois la ligne copiée à partir de la ligne 20 de la feuille
2.
Mes compétences en VBA sont plus que faible,si quelqu'un peu m'aider , il
est le bien venu.

Merci

3 réponses

Avatar
Daniel
Bonjour.
Ce code là devrait faire l'affaire.

Sub Test()
Dim c As Range, Ligne As Integer
Sheets("feuil1").Select
Ligne = 20
Range("B1", Range("B1").End(xlDown)).Select
For Each c In Selection
If c.Value = 2 Then
Range("Feuil2!a" & Ligne) = c.Offset(0, -1).Value
Ligne = Ligne + 1
End If
Next c
End Sub

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

Bonjour,

Petit résumé de mon problème.
J'ai un classeur avec deux feuilles.
La feuille 1 comprend des données que je voudrais insérer sur ma feuille
2.

Feuille 1: colonne A : pierre, paul, jacques, toto, tata
Colonne B : 2,1,3,2,1

Je voudrais que la macro teste ma feuille 1 et que lorsqu"elle trouve la
valeur "2" dans la colonne B, elle copie et insère la ligne dans ma
feuille
2 (insertion par exemple à partir de la ligne 20).
Ce qui donnerais dans ma feuille 2 :
ligne 20 colonne A : Pierre // colonne B :2
linge 21 colonne A : Jacques // colonne B :2

Poy Poy m'est déja venu en aide sur ce problème, mais je pense que j'avais
mal expliqué mon problème. Il m'a donnée le code suivant :

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


Après plusieurs test, j'ai compris ce que faisais cette macro. Elle teste
la
feuille2 (au lieu de la feuille1), et si elle trouve la valeur recherchée
,
elle insert 100 fois la ligne copiée à partir de la ligne 20 de la feuille
2.
Mes compétences en VBA sont plus que faible,si quelqu'un peu m'aider , il
est le bien venu.

Merci




Avatar
Ellimac
Bonjour,

Sub Toto()
Sheets("Feuil1").Select
Range("a1").AutoFilter Field:=2, Criteria1:="2"
Range("a1").CurrentRegion.Offset(1).SpecialCells
(xlCellTypeVisible).Copy
Sheets("Feuil2").Select
Range("A30").End(xlUp).Offset(1).PasteSpecial
Application.CutCopyMode = False
End Sub

Camille

-----Message d'origine-----
Bonjour,

Petit résumé de mon problème.
J'ai un classeur avec deux feuilles.
La feuille 1 comprend des données que je voudrais insérer
sur ma feuille 2.


Feuille 1: colonne A : pierre, paul, jacques, toto, tata
Colonne B : 2,1,3,2,1

Je voudrais que la macro teste ma feuille 1 et que
lorsqu"elle trouve la

valeur "2" dans la colonne B, elle copie et insère la
ligne dans ma feuille

2 (insertion par exemple à partir de la ligne 20).
Ce qui donnerais dans ma feuille 2 :
ligne 20 colonne A : Pierre // colonne B :2
linge 21 colonne A : Jacques // colonne
B :2


Poy Poy m'est déja venu en aide sur ce problème, mais je
pense que j'avais

mal expliqué mon problème. Il m'a donnée le code suivant :

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


Après plusieurs test, j'ai compris ce que faisais cette
macro. Elle teste la

feuille2 (au lieu de la feuille1), et si elle trouve la
valeur recherchée ,

elle insert 100 fois la ligne copiée à partir de la ligne
20 de la feuille

2.
Mes compétences en VBA sont plus que faible,si quelqu'un
peu m'aider , il

est le bien venu.

Merci


.



Avatar
MiMate
Lorsque la macro trouve dans la colonne la valeut recherchée il y a une
erreur d'execution,
Si la valeur recherchée n'existe pas dans la colonne pas d'erreur.

?



"Daniel" a écrit dans le message de
news:
Bonjour.
Ce code là devrait faire l'affaire.

Sub Test()
Dim c As Range, Ligne As Integer
Sheets("feuil1").Select
Ligne = 20
Range("B1", Range("B1").End(xlDown)).Select
For Each c In Selection
If c.Value = 2 Then
Range("Feuil2!a" & Ligne) = c.Offset(0, -1).Value
Ligne = Ligne + 1
End If
Next c
End Sub

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

Bonjour,

Petit résumé de mon problème.
J'ai un classeur avec deux feuilles.
La feuille 1 comprend des données que je voudrais insérer sur ma feuille
2.

Feuille 1: colonne A : pierre, paul, jacques, toto, tata
Colonne B : 2,1,3,2,1

Je voudrais que la macro teste ma feuille 1 et que lorsqu"elle trouve la
valeur "2" dans la colonne B, elle copie et insère la ligne dans ma
feuille
2 (insertion par exemple à partir de la ligne 20).
Ce qui donnerais dans ma feuille 2 :
ligne 20 colonne A : Pierre // colonne B :2
linge 21 colonne A : Jacques // colonne B :2

Poy Poy m'est déja venu en aide sur ce problème, mais je pense que
j'avais


mal expliqué mon problème. Il m'a donnée le code suivant :

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


Après plusieurs test, j'ai compris ce que faisais cette macro. Elle
teste


la
feuille2 (au lieu de la feuille1), et si elle trouve la valeur
recherchée


,
elle insert 100 fois la ligne copiée à partir de la ligne 20 de la
feuille


2.
Mes compétences en VBA sont plus que faible,si quelqu'un peu m'aider ,
il


est le bien venu.

Merci