VBA- transpose tableau vertical en horizontal

Bonjour à tous du forum,

j'ai un tableau (feuillet original) avec des dates dans la col. A, puis différents paramètres météo dans les colonnes B à J. Habituellement, je recopie du tableau original les éléments intéressants (soit Tmin, Tmax, Precip) dans des feuillets distincts. Par un cheminement plutôt long (le tableau original a plusieurs centaines de stations et donc plusieurs milliers de lignes), je parviens à transposer les feuillets de vertical à l'horizontal. Quelqu'un aurait une idée, pour me simplifier la tâche?

Je joins un fichier simplifié avec le feuillet de départ (original) puis les 3 feuillets qui me demandent des heures à produire sans macro. À noter que dans l'exemple, la période n'est que de 1 mois mais il peut arriver qu'elle soit de plusieurs mois.

Merci d'avance

Émil

Bonjour,

Dans la feuille "original", il ne faut pas mélanger les lieux (Amos; Belleterre etc…)

ou alors ajouter une colonne "Lieu"

Attention:

Tu es sous Excel 2003 et donc limité à 256 lignes à transposer en colonnes.

Amicalement

Claude

Bonjour Claude,

je te remercie de te pencher sur mon problème.

En fait, la feuille originale représente le format dont je reçois l'ensemble des observations. Le défi est justement de reformater l'information afin de la traiter et la rendre conforme à motre format standard.

À chaque fois que je fais une requête, je dois reformater l'info. Pour ce faire,

je dois aligner tous les lieux (et leur sous-tableau: dates et paramètres météo sur les même lignes)

une fois que cela est fait pour quelques 20 stations, je duplicate le nouveau tableau reformaté dans

3 nouveaux feuillets: Tmax, Tmin, Precip

pour chaque nouveaux feuillets, je ne garde que les lieux sur la ligne 1, les dates dans la colonne 1 puis le

paramètre choisi aux col. suivantes

finalement, je fais un copier-coller (colage spécial) en transposant les lignes en colonnes.

Tu peux deviner que cela peux prendre quelques heures (sans compter les risques d'erreurs). Y-a-t'il un moyen d'être plus efficace (genre VBA)?

Émil

Bonjour à tous,

Sans entrer dans une usine à gaz,

voici une proposition assez simple à mettre en œuvre

Pour le moment, rien n'est automatisé, j'ai fais la manip manuellement.

------- Contrainte -------

Dans la feuille temporaire "Original", ne mettre qu'un seul mois (ici Mai),

il y aura donc un onglet par mois, et un fichier par année.

Ici on filtre les relevés (Précip.; Tmax; Tmin; Tmoy)

mais on pourrait filtrer aussi par Stations. Combien de stations ?

Avant d'aller + loin, vois si c'est jouable pour toi ?

PS: il serait bon d'avoir dans la feuille "Original", les données brutes (telles que tu les extrait)

sans les bricoler.

Amicalement

Claude.

Bonjour à tous

Proposition ci joint quelque soit le nbre de jours et de lieux

si besoin ultérieur, on peut ajouter sans trop de problèmes des onglets avec d'autre mesures

reste à améliorer la présentation et déclarer les variables manquantes (la flemme)

Tu dis...

178copie-agro-mai.zip (24.38 Ko)

Bonjour Claude et Michel,

je dois admettre que la solution proposée par Michel me convient parfaitement. J'ai essayé la VBA sur une requête plus élaborée (une centaine de stations et 45 jours de données) et la macro donne un résultat quasi instantanné!

PS. Je suis conscient que je devrai me limiter à des requêtes de 8 mois ou moins pour ne pas dépasser les 256 col. permises dans excel2003.

Encore une fois, je vous remercie

Émil

Bonjour Emil, forum,

Autre solution

Tout sur une seule Base avec filtres élaborés.

- Pas de limitation de colonnes (puisque toujours 38 colonnes)

---- Exemple pour 100 stations ----

1 mois = 400 lignes

1 an = 4800 lignes

donc un fichier par an me parait largement raisonnable.

---- Enregistrement ----

Peut se faire en plusieurs fois et dans n'importe quel ordre, le programme contrôle si les données

sont déjà saisies (évite les doublons).

---- Filtres ----

3 listes déroulantes, permet de filtrer la base suivant les critères choisis et combinés.

  • Stations
  • Type de relevés
  • mois et année

Nota: valable si la structure à saisir est telle que l'exemple fourni (une ligne vide entre chaque pavés)

me signaler si bugs ou besoin d'aménagements !

Pour tester, purger les mois Juin et Aout et re-saisir la feuille "Original"

Amicalement

Claude.

186emil-transpose.zip (69.00 Ko)
Rechercher des sujets similaires à "vba transpose tableau vertical horizontal"