VBA pr glisser intitulé de colonne en ligne

Fermé
Clarisse35 - 7 janv. 2011 à 13:31
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 - 7 janv. 2011 à 17:29
Bonjour,

Je cherche à obtenir un nouveau tableau sous Excel à partir d'un tableau existant.

Le tableau d'origine serait du type :

CENTRE ACTIVITE JANVIER FEVRIER MARS
Centre 1 Menuiserie 200 300 400

Le résultat que je souhaite obtenir serait d'avoir le même détail avec affichage des montants et des mois correspondant en lignes:

Centre 1 Menuiserie 200 JANVIER
Centre 1 Menuiserie 300 FEVRIER
Centre 1 Menuiserie 400 MARS

Existe t-il un code VBA pour résoudre cette problématique ?

Merci d'avance

A voir également:

3 réponses

lasyl1 Messages postés 103 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 7 juin 2021 50
7 janv. 2011 à 13:51
Bonjour

Il y a une fonction Excel pour mettre la ligne en colonne ou inversément ..

Sélectionnez la ligne à modifier.

Copy.

Allez sur la 1ére cellule de votre future colonne.

Paste Special .. Transpose ( à cocher dans le bas du copiage spécial)

voilà .
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 7/01/2011 à 14:59
bonjour,
c'est un peu plus compliqué

en VBA
les lignes 1 sont les intitulés (CENTRE ACTIVITE ...)
le tableau initial en feuille 1 à partir de la ligne 2
le tableau resultat en feuille 2 a partir de la ligne 2


Option Explicit 

Private Sub CommandButton1_Click() 
Dim lif1 As Long, lif2 As Long, cof1 As Long 
Dim Centre As String, Activite As String 
Dim score As Long, mois As String 
Dim nblif1 As Long 
  nblif1 = Sheets(1).Range("A65536").End(xlUp).Row 
  lif2 = 1 
  For lif1 = 2 To nblif1 
    Centre = Sheets(1).Cells(lif1, 1).Value 
    Activite = Sheets(1).Cells(lif1, 2).Value 
    For cof1 = 3 To 14 
      score = Sheets(1).Cells(lif1, cof1).Value 
      mois = Sheets(1).Cells(1, cof1).Value 
      lif2 = lif2 + 1 
      Sheets(2).Cells(lif2, 1).Value = Centre 
      Sheets(2).Cells(lif2, 2).Value = Activite 
      Sheets(2).Cells(lif2, 3).Value = score 
      Sheets(2).Cells(lif2, 4).Value = mois 
    Next cof1 
  Next lif1 
End Sub


est ce que ça repond a la question?

voir fichier exemple

http://www.cijoint.fr/cjlink.php?file=cj201101/cijIYndZt2.xls

bonne suite
0
lasyl1 Messages postés 103 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 7 juin 2021 50
7 janv. 2011 à 15:49
désolée .. cela dépasse mes connaissances ..

Quelqu'un d'autre peut l'aider ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 janv. 2011 à 16:36
CCM81 ( bonjour, ca va ?) répondait à Clarisse et non à lasyl...
0
lasyl1 Messages postés 103 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 7 juin 2021 50
7 janv. 2011 à 16:44
ok.. désolée . ai rien dit ..
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
7 janv. 2011 à 17:29
re
> lasyl1 effectivement c'est a clarisse 35 que la 2° partie de mon post etait adressée
> michel_m. merci, pour le moment tout va bien ... j'espère qu'il en est de même pour toi
cordialement
0