Copier colonnes à condition

Bonjour le forum

Je cherche une petite macro qui me copie des colonnes vers des autres automatiquement et à chaque saisi des donnés à condition

1. F18:F2280 Vrai ; copier les colonnes (en jaune) A; F ; H;I ; J ; k ver v,w ;x ;y ;z ;aa ;ab

2. G18 :G2280 Vrai ; copier les colones (en vert ) A; g ; H;I ; J ;k ver ac ;ad ;ae ;af ;ag ;ah

Merci pour votre aide

4aout-2018.zip (117.80 Ko)

Bonjour,

Une méthode :

Sub TftData()
    Dim aa, kJau, kVer, tfJau(), tfVer(), i&, iJ&, iV&, kTest%
    With Worksheets("Data")
        i = .Range("A" & .Rows.Count).End(xlUp).Row
        aa = .Range("A18:K" & i).Value2
    End With
    kJau = Array(1, 6, 8, 9, 10, 11)
    kVer = Array(1, 7, 8, 9, 10, 11)
    kTest = 2
    For i = 1 To UBound(aa)
        If aa(i, kTest) = "a" Then
            ReDim Preserve tfJau(iJ)
            tfJau(iJ) = WorksheetFunction.Index(aa, i, kJau)
            iJ = iJ + 1
        ElseIf aa(i, kTest) = "b" Then
            ReDim Preserve tfVer(iV)
            tfVer(iV) = WorksheetFunction.Index(aa, i, kVer)
            iV = iV + 1
        End If
    Next i
    Application.ScreenUpdating = False
    With Worksheets("Data")
        i = .Range("V" & .Rows.Count).End(xlUp).Row
        .Range("V18:AA" & i).Clear
        With .Range("V18").Resize(iJ, 6)
            .Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(tfJau))
            .Borders.Weight = xlThin
            .Interior.Color = vbYellow
            .Columns(1).NumberFormat = "dd-mmm-yy"
        End With
        i = .Range("AC" & .Rows.Count).End(xlUp).Row
        .Range("AC18:AH" & i).Clear
        With .Range("AC18").Resize(iV, 6)
            .Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(tfVer))
            .Borders.Weight = xlThin
            .Interior.Color = RGB(146, 208, 80)
            .Columns(1).NumberFormat = "dd-mmm-yy"
        End With
    End With
End Sub

Cordialement.

J’ai pas pu l’adapter à mon fichier original

Car vous avez limé les entrés « a » et « b » seulement ;

Moi je veux simplement copier

1. les colonnes A; F ; H;I ; J ; k ver v,w ;x ;y ;z ;aa ;ab . où la colonne F n’est pas vide

2. les colonnes A; G ; H;I ; J ;k ver ac ;ad ;ae ;af ;ag ;ah où la colonne G est n’est pas vide

Salutations

bonjour

salut au passage MFerrand

le fichier exemple ressemble furieusement à un TCD

saber2018 connais-tu bien les TCD ?

non je suis nul au VBA

re

il semble que tu sois encore plus "nul" en Excel

alors je te conseille d'apprendre Excel d'abord, et VBA ensuite.

jette un coup d'oeil aux tutos sur le net concernant les TCD (c'est de l'Excel, menu n°2) à bien maîtriser rapidement.

Youtube en regorge

les TCD font des extractions, des filtres, des tris, des totaux, des moyennes, des max ou min, et même si tu veux ils ne font aucun calcul

et font aussi des regroupements si tu en as besoin

c'est génial !

fais un essai et reviens si problème

Bonjour, Salut jmd !

Je ne comprends pas ce que veut dire limer les entrées "a" et "b" ?

Moi je veux simplement copier

1. les colonnes A; F ; H;I ; J ; k ver v,w ;x ;y ;z ;aa ;ab . où la colonne F n’est pas vide

2. les colonnes A; G ; H;I ; J ;k ver ac ;ad ;ae ;af ;ag ;ah où la colonne G est n’est pas vide

Ce qui est ta demande initiale à laquelle tu as adjoins une condition pour chacun des cas...

Je te fais donc remarquer que quand la colonne F n'est pas vide, il y a "a" en colonne B, et si la colonne G n'est pas vide, il y a alors "b" en colonne B !

Ceci étant établi, j'ai trouvé plus logique de tester la même cellule plutôt que d'en tester 2 différentes... mais cela confirme bien tes conditions.

D'autre part, au cas où tu ne t'en soies pas rendu compte, je ne procède pas par copier-coller, au profit d'une méthode plus efficace qui ne peut être utilisée manuellement.

Mais le résultat est bien que les cellules jaunes et vertes vont respectivement aux endroits où tu souhaitais qu'elles aillent !

J’ai pas pu l’adapter à mon fichier original

Je ne te le conseille pas sans connaissance suffisante en VBA.

Si ton modèle était conforme à l'original et configuré de la même façon que ce dernier, tu ne devrais pas avoir d'adaptation à faire. Un certain nombre d'éléments sont définis au moyen de variables (dimensionnement de la plage source, colonnes dont les valeurs sont à récupérer), d'autres non, concernant le positionnement (ligne 18, plage source débutant en A jusqu'en K, plages cibles débutant en V et AC).

Comme tu n'as pas fait état d'adaptation à cet égard, je ne vois pas ce que tu pourrais vouloir adapter !

Cordialement.

Après avoir vu le post de jmd, je dois ajouter que la méthode utilisée pour traiter ta demande utilise des composants propres à VBA (tableaux VBA) et procède par affectation de valeurs (méthode propre à VBA), mais utilise aussi (en VBA la fonction Excel INDEX, fonction assez sophistiquée finalement, qui réclame que tu la connaisses pour comprendre les explications, elle utilise également lors des affectations la fonction excel TRANSPOSE (à connaître...)

Cordialement.

Le jeudi prochain je vais vous envoyer mon fichier original par privé et j'espère que tu le rectifie de tel sort que la macro soit exécutable

Merci

Ok !

Bonjour à tous,

question de jmd (dans son post du 18 août à 14:07) :

saber2018 connais-tu bien les TCD ?

réponse de saber (juste en dessous) :

non je suis nul au VBA

ouaf ! mdr !!!

j'me moque pas d'toi, saber, c'est juste que t'as répondu exactement c'qui fallait pas à quelqu'un comme jmd, car vois-tu (et c'est un gros euphémisme), il est pas particulièrement fan de VBA ! j'imagine qu'il a dû en tomber d'sa chaise, le pauvre ! ça va, jmd ? tu t'es remis d'aplomb ? c'est heureux qu't'aies pas attrapé une jaunisse ou une syncope !!!


allez, j'te rassure : même moi, je fais parfois des choses purement Excel, sans VBA !

si, si, c'est vrai : j'invente pas ça juste pour te faire plaisir !

dhany

Apres plusieurs essais et tentatives j’ai réussi enfin à résoudre mon sujet en utilisant le fichier joint (peut être quelqu’un a le même contexte que moi peut l’utilisé aussi)

Je remercie tout ce qui m’ont ou pas aidés et même qui m’ont donné des leçons au « développement humain »

merci pour ton retour d'infos, pour avoir mis ta solution en partage, et pour avoir passé le sujet en résolu.

dhany

Rechercher des sujets similaires à "copier colonnes condition"