Contact: 514-605-7112 / info@lecfomasque.com

VBA Transposition

Mots-clés : 

Ce sujet a 4 réponses, 3 participants et a été mis à jour par  Julien Roldan, il y a 4 mois et 2 semaines.

5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #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
    Admin bbPress

    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

    fichiers attachés:
    You must be logged in to view attached files.
    #52467

    Julien Roldan
    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.