Macro : test valeur , si ok recopie dans seconde feuiile
3 réponses
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.
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. 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
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" <Mimate@free.fr> a écrit dans le message de news:
eW6iAQiJFHA.3084@TK2MSFTNGP10.phx.gbl...
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.
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
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
.
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
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
.
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
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" <dZZZcolardelle@free.fr> a écrit dans le message de
news:uvVkudiJFHA.2704@tk2msftngp13.phx.gbl...
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" <Mimate@free.fr> a écrit dans le message de news:
eW6iAQiJFHA.3084@TK2MSFTNGP10.phx.gbl...
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
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