Excel copier avec condition

Résolu/Fermé
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011 - Modifié par ptitgars509 le 9/10/2011 à 23:36
 ptitgars509 - 20 oct. 2011 à 01:33
Bonjour,

J'ai un petit problème, voilà, J'ai une plage allant de A4 à G50 (A4:G50), Je veux copier dans une autre plage I4:O50, toutes les lignes de la première plage (copier les lignes allant de A à G seulement) ne respectant pas une condition, et ne pas recopier celles respectant la même condition. La condition étant, à chaque fois que je trouve un "X" dans une colonne précise, je ne recopie pas la ligne entière, je la saute et je passe à la prochaine ligne, et quand je ne retrouve pas ce "X", je recopie la ligne mais seulement de A à G. Par exemple, si je dis que la colonne F ne doit pas contenir de "X" et que je ne retrouve pas ce "X" sur la ligne 4, je recopie A4, B4, C4, D4, E4, F4, G4 respectivement dans les cellules I4, J4, K4, L4, M4, N4, O4. Comment faire avec formules ou VBA? Merci pour vos réponses!

11 réponses

f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
9 oct. 2011 à 12:47
Bonjour,

Sub Tri_Datas1()
Dim Pointeur As Integer

'Plage A4:G50, colonne test F4:F50
Sheets("Feuil1").Select
Pointeur = 4
Do While Cells(Pointeur, 1) <> ""
If Cells(Pointeur, 6) = "X" Then
'non copie
Else
'Ligne a copier
Range(Cells(Pointeur, 1), Cells(Pointeur, 7)).Select
'copie Ax:Gx vers Ix:Ox
Selection.Copy
Range("I" & Pointeur).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Pointeur = Pointeur + 1
Loop
End Sub

a essayer et bonne suite
0
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011
9 oct. 2011 à 21:36
SALUT MERCI POUR LA REPONSE MAIS CELA NE MARCHE PAS CHEZ MOI<code>
0
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011
Modifié par ptitgars509 le 9/10/2011 à 23:37
EXCUSE j'ai refait c'est parfait! merci l'ami! Est ce qu'il est possible de recopier sur l'autre plage sans laisser les lignes vides?
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
10 oct. 2011 à 14:17
bonjour,
Oui, je fais les modifs.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
10 oct. 2011 à 14:22
Re
Sub Tri_Datas1()
Dim Pointeur As Integer, Pointeur_Copie As Integer

'Plage A4:G50, colonne test F4:F50
Sheets("Feuil1").Select
Pointeur = 4
Pointeur_Copie = 4
Do While Cells(Pointeur, 1) <> ""
If Cells(Pointeur, 6) = "X" Then
'non copie
Else
'Ligne a copier
Range(Cells(Pointeur, 1), Cells(Pointeur, 7)).Select
'copie Ax:Gx vers Ix:Ox
Selection.Copy
Range("I" & Pointeur_Copie).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Pointeur_Copie = Pointeur_Copie + 1
End If
Pointeur = Pointeur + 1
Loop
End Sub

A bientot

Bonne suite
0
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011
10 oct. 2011 à 23:29
OK MERCI ça marche super bien, j'ai tellement cherché pour cela, comme on dit ce que tu ne connais pas t'es supérieur! Je ne veux pas t'embêter, mais juste une dernière question: "si je veux mettre plusieurs conditions, faut-il juste une modification ou refaire le même code en modifiant la ligne de la conditions?"
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
11 oct. 2011 à 17:49
Bonjour,
Il faut modifier le code au niveau du :
If Cells(Pointeur, 6) = "X" then
mais, attention en fonction des tests que vous voulez faire, il faudra peut-etre modifier la ligne:
else

A bientot

Bonne suite
0
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011
11 oct. 2011 à 22:29
Bonsoir, j'ai essayé de juste rajouter une deuxième condition mais cela ne passe pas! voilà comment j'ai fait:

Sheets("Feuil1").Select
Pointeur = 4
Pointeur_Copie = 4
Do While Cells(Pointeur, 1) <> ""
If Cells(Pointeur, 6) = "X" & cells(pointeur, 3) = « y » Then
'non copie
Else
'Ligne a copier
Range(Cells(Pointeur, 1), Cells(Pointeur, 7)).Select
'copie Ax:Gx vers Ix:Ox
Selection.Copy
Range("I" & Pointeur_Copie).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Pointeur_Copie = Pointeur_Copie + 1
End If
Pointeur = Pointeur + 1
Loop
End Sub

moi je voudrais que dès qu'une de ces conditions est vrai, qu'il ne recopie pas la ligne où la condition se trouve! j'ai essayé avec plein d'autres choses mais ça ne passe pas!
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
12 oct. 2011 à 11:13
Bonjour,
Vous avez un probleme d'operateur logique et de syntaxe.

Sheets("Feuil1").Select
Pointeur = 4
Pointeur_Copie = 4
Do While Cells(Pointeur, 1) <> ""
If Cells(Pointeur, 6) = "X" Or cells(Pointeur, 3) = "Y" Then
'non copie
Else
'Ligne a copier
Range(Cells(Pointeur, 1), Cells(Pointeur, 7)).Select
'copie Ax:Gx vers Ix:Ox
Selection.Copy
Range("I" & Pointeur_Copie).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Pointeur_Copie = Pointeur_Copie + 1
End If
Pointeur = Pointeur + 1
Loop
End Sub

Continuez bien
0
ptitgars509 Messages postés 8 Date d'inscription vendredi 7 octobre 2011 Statut Membre Dernière intervention 12 octobre 2011
12 oct. 2011 à 17:02
OK mille mercis! Je vais pouvoir avancer maintenant!
0
ptitgars509
20 oct. 2011 à 01:33
bonsoir,

puis-je avoir une fois de plus recours à votre aide, pour savoir comment est ce que je peux modifier le code si ma condition n'est pas le contenu des cellules mais leurs couleur? Par exemple au lieu que "X" dans la colonne F, j'ai couleur rouge dans cette même colonne! merci
0