copier avec condition sur excel!

ptitgars509

Nouveau membre
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!
 

Thore

Grand Maître
Salut,

Ce code supprime les colonnes vide tu pouras peut-être l'adapter
(cel impliqueras que tu copie tous tes colonnes avec le traitement !
j'ai recopier cela sur un livre pour le vba de excel 2010
a+

C++:
Sub SuprimerColonnesVides()
Dim vDerniereColonne As Long
Dim vCol As Long
VDerniereColonne = ActiveSheet.UsedRange.Columns.Count
Application.ScreenUpdating = False
For vCol = VDerniereColonne To 1 Step -1
If Application.CountA(Columns(vCol)) = 0 then
Columns(vCol).Delete
Next
End Sub
 

ptitgars509

Nouveau membre
salut Thore, j'ai un code mais soit c'est moi qui n'arrive pas à l'adapter soit il y a une erreur dedans, je te le montre donne moi ton avis stp

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
 

Thore

Grand Maître
 

ptitgars509

Nouveau membre
je n'ai pas compris, moi je voudrais remplacer la plage A4:G50 par la plage K4:Q2190 et je voudrais que la copie se fasse dans la plage AB4:AH2190 et mettre ma condition dans la colonne M par exemple.
 

ptitgars509

Nouveau membre




la parenthèse elle est où stp? et comment pourrais-je l'adapter pour une autre plage, y a t-il des choses à changer?
 

zeb

Modérateur
Salut,

Thore, quand tu mets un ScreenUpdating à Faux, pense à le remettre à vrai à la fin du traitement ;)

PtitGars509, arrête avec tes sélections et tes copier/coller.
Une solution avec formule ne serait pas compliquée, mais ne sera pas discutée ici (Programmation).

Il y a pléthore d'exemples comme celui-ci dans le sous-forum VBA :
Code:
' // Rappel : F est la 6ème lettre de l'alphabet, I la 9ème.
Dim zone As Range
For Each zone In Range("A1:G5").Rows
    If zone.Cells(6).Value <> "X" Then
        zone.Copy Cells(zone.Row, 9)
    End If
Next
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 059
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut