Macro collage spécial valeur transposé

Bonsoir le Forum

Je viens vers vous pour un coup de main,

Je souhaiterais copier les données de la base 2 vers la base 1 transposé

J’ai essayé un bout de code mais rien ne va, je n'arrive pas à faire correspondre les valeurs au bon endroit. J’utilise collage spécial valeur transposés

La base2: les données vont changer tous les jours je colle les valeurs .1 jour une ligne mais il doit y avoir une histoire de décalage de cellule et là je suis perdus

J’ai simplifié pour l'exemple

D'avance merci

Clt

24testclasseur.xlsm (23.15 Ko)

Bonjour,

A essayer :

Sub Test()
    Dim Tbl(), i%, n%
    With Worksheets("Base2")
        n = .Range("G" & .Rows.Count).End(xlUp).Row - 1
        If n = 0 Then Exit Sub
        ReDim Tbl(n - 1)
        With .Range("H2").Resize(n, 3)
            For i = 1 To n
                Tbl(i - 1) = .Rows(i).Value
            Next i
        End With
    End With
    With Worksheets("Base1")
        n = .Range("B" & .Rows.Count).End(xlUp).Row + 1
        With .Range("B" & n)
            For i = 0 To UBound(Tbl)
                .Offset(, i * 3).Resize(, 3).Value = Tbl(i)
            Next i
        End With
        .Activate
    End With
End Sub

Pour tester, tu cliques sur ton bouton bleu...

Cordialement.

bonjour

salut MFerrand

vu la manière dont est posée la question "transposer", j'ai commencé avec Power Query. Je transpose et j'obtiens une horreur !

alors je relis le BUT

et je fais un simple TCD

tout problème Excel se résout sans VBA. Pensez Excel d'abord.

Salut jmd !

Je dois dire que les TCD ne m'ont jamais été agréables à l'oeil... mais bon ! je ne vois pas ce qui t'empêche de programmer la mise ne place d'un TCD, en VBA !

Ceci dit, tu ne réponds pas à la question : le tableau en Base2 change tous les jours, pour aller s'ajouter au tableau en Base1, lequel demeure.

Et je ne vois pas que tu obtiennes ce résultat !

Bonne journée !

re

MFerrand,

il suffit de bien choisir l'ordonnancement du TCD, comme ceci

ah, oui, le TCD a besoin des dates

on peut d'ailleurs se demander si les données récupérées par jour le sont par blocs journaliers ?

dans 99% des cas on te répond "oui"

mais en réalité, on extrait un jour parmi une grande base contenant des milliers de jours (encouragé en cela par les programmeurs du progiciel en amont, trop heureux de vendre un module "extraction" qui en réalité ne fait que compliquer et perdre du temps)

je vois ça tous les jours

dès lors, je propose de lire directement dans la base complète

puis de faire tout ce qu'on veut, dont des TCD

avec donc TOUTES les dates, en un clic !

Excel aujourd'hui c'est ça, et bien plus encore

pas besoin de VBA

note : les TCD ne sont pas jolis. OUI. Mais il y a une raison : ils ne servent à rien !

disons qu'ils servent à préparer des graphiques bien plus parlants

de même la présentation faite par vsp31 est indigeste, il lui faut faire un graphique. Dès lors faire un tableau joli n'est plus nécessaire

vois les tutos de Power BI (Excel suvitaminé). On dit que l'analyse de données doit "raconter une histoire" !

j'en suis au point de faire des graphiques tellement parlant , que j'enlève les échelles et les étiquettes

et les utilisateurs sont heureux

note 2 : on peut bricoler un TCD pour le rendre joli, mais je considère que c'est une perte de temps

j'ajoute que la présentation en groupes de 3 colonnes qu'on voit en onglet Base1 est particulièrement illisible

avec tout le respect que je dois à vsp31

amitiés à tout le monde

Bonjour MFerran, jmd,le Forum,

Impeccable pour ne pas dire parfait merci, exactement mes attentes, a par moi qui est fait un oubli de récupération de la date.

Donc pour récupérer la date. J’ai donc fais un bout de code(avec l’enregistreur) qui pourrait peut-être s’imbriqué dans ton code mets je pense qu’il peut être amélioré et surtout ne va-t-il pas mettre le bazar dans ton code ?

Sans abuser te ton aide pourrais-tu y jeter un œil averti.

Ont copie la date en « C2 » » base 2 » pour la coller en « A3 » » base1 »

Sheets("Base2").Select

Range("C2").Select

Selection.Copy

Sheets("Base1").Select

Sheets("Base1").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

D’avance merci et bonne journée

Clt

Ps : l’exemple du tableau n’est vraiment qu’un petit bout juste pour faire comprendre mes attentes pour la macro désolé pour »

présentation faite par vsp31 est indigeste,

» présenté comme ça je suis d’accord.

Tu ne vas pas polluer mon code avec de l'enregistré ! Ce serait une raison plus que suffisante pour que j'ignore définitivement tes questions à l'avenir !

Où prend-on la date ? et où la met-on ?

Rechercher des sujets similaires à "macro collage special valeur transpose"