VBA Transposition

Accueil – Le CFO masqué Forums VBA VBA Transposition

Mots-clés : 

  • Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par Consultant No.3, le il y a 5 années et 2 mois.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #52328
    luc
    Participant

    Bonjour,
    Le code dans le fichier me permet de transposer des lignes en colonnes (seulement si il y a une valeur).
    Seulement, le chemin que j’emploi n’est pas optimisé et la macro est n’est pas assez rapide.
    J’ai essayé de transposer en bloc mais cela n’a pas fonctionné.

    Merci beaucoup pour votre aide.

    Bien

    #52330
    luc
    Participant

    Ci-joint le fichier avec la macro

    #52364
    Sophie Marchand
    Participant

    Bonjour Luc,

    Les fichiers .xlsm ne peuvent pas être directement téléchargés sur le forum (bogue temporaire). Il faudrait donc zipper le fichier et l’uploader de nouveau. Désolé pour les inconvénients.

    Merci.

    Sophie

    #52393
    luc
    Participant

    Merci pour cette information.
    Veuillez-trouver ci-joint le fichier zipper.

    Luc

    Attachments:
    You must be logged in to view attached files.
    #52467
    Consultant No.3
    Participant

    Bonjour,

    Est-ce que la macro existante fournit le résultat escompté ?
    Si oui sur mon poste elle roule en 6 secondes, ainsi il sera difficile de faire mieux en terme de performance…d’autant plus que les boucles sont déjà pas mal optimisées.

    J’ai cependant remarqué 2 portions du code pouvant être amélioré:

    1- Au lieu d’utiliser une boucle pour définir le nombre de ligne dans l’onglet Tabelle 1 (la variable l dans votre code), vous pourriez aller chercher la dernière ligne non vide de la colonne 15 avec le code suivant :

    l = Sheets(“Tabelle1”).Range(“O” & Rows.Count).End(xlUp).Row – 1

    2- La suppression des données que vous faites sur l’onglet Tabelle 2 ne se fait pas correctement car elle est basée sur la variable l qui correspond au nombre de ligne de l’onglet Tabelle 1, afin d’être certain d’effacer toutes les lignes il faudrait donc remplacer par :

    With Sheets(“Tabelle2”)
    .Range(.Cells(1, 1), .Cells(1048576, 17)).Clear
    End With

    N’hésitez pas si vous avez des questions,

    Cordialement,

    Julien Roldan

5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.