IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transposer une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut Transposer une macro
    Bonjour

    Sur le fichier joint j'ai une macro qui lance un userform qui permet de sélectionner certains paramètres (situé dans la colonne A) et d'en faire un graphique sur une période unique de 31 jours.
    Hors j'ai besoin maintenant de faire ce même type d'opération sur une année complète, seulement je travaille sur excel 97 qui ne comporte que 256 colonnes.
    La solution est donc de transposer le tableau pour mettre les dates dans la colonne A et les paramètres sur une ligne, seulement voila, la macro ne peut plus fonctionner ... et je ne vois pas du tout comment faire pour "transposer" la macro.

    Si quelqu'un a un petite idée, elle est la bienvenue.

    Merci

    Kes ;o)
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonsoir,

    On peu voir un peu de code, voir des objets style Cells ou Range...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Bonsoir

    Le code est visible dans visual basic editor !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub CommandButton2_Click()
     
    Application.ScreenUpdating = False
     
     
    Dim ligne1, ligne2, ligne3, ligne4, ligne5, ligne6, ligne7, ligne8 As Long
    On Error Resume Next
    ligne1 = Application.Match(Me.ComboBox1.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne2 = Application.Match(Me.ComboBox2.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne3 = Application.Match(Me.ComboBox3.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne4 = Application.Match(Me.ComboBox4.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne5 = Application.Match(Me.ComboBox5.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne6 = Application.Match(Me.ComboBox6.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne7 = Application.Match(Me.ComboBox7.Value, Range("A:A"), 0)
    On Error Resume Next
    ligne8 = Application.Match(Me.ComboBox8.Value, Range("A:A"), 0)
     
    Range("A" & ligne1 & ":AF" & ligne1).Select
    Charts.Add
        ActiveChart.ChartType = xlLineMarkers
        ActiveChart.SetSourceData Source:=Sheets("feuil1").Range("A" & ligne1 & ":AF" & ligne1), PlotBy:=xlRows
        ActiveChart.SeriesCollection(1).XValues = "=feuil1!R9C2:R9C32"
        ActiveChart.Location where:=xlLocationAsNewSheet
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne2 & ":AF" & ligne2)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne3 & ":AF" & ligne3)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne4 & ":AF" & ligne4)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne5 & ":AF" & ligne5)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne6 & ":AF" & ligne6)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne7 & ":AF" & ligne7)
     
    ActiveChart.SeriesCollection.Add _
        Source:=Sheets("feuil1").Range("A" & ligne8 & ":AF" & ligne8)
     
    Application.CutCopyMode = False
     
    userform1.Hide
     
    End Sub

    Dans le fichier final le tableau de valeur est transposé, c'est à dire que les paramètres ne seront plus dans la colonne A mais dans la ligne 1. Cela me permet ainsi de mettre les valeurs sur une années complète (365 lignes)
    seulement il faudrait que les listbox du userform aille chercher ces paramètres dans la ligne 1.

    Ce n'est peut être pas très clair, mais ce que je voudrai c'est une macro identique au fichier joint mais avec le même tableau transposé.

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par keskidi62 Voir le message
    Bonsoir

    Le code est visible dans visual basic editor !!!

    ....
    Au lieu de crier pense à rajouter les balises de codes ...

    on est quand même pas obligé de télechargé ton fichier , on sait pas ce que tu as mis dedans ... virus., et on ne va pas faire tous le travail pour toi !!!!!!

    tu pourrai essayer de cerner mieux ton probléme...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Du calme là-dedans !
    @keskidi62
    As-tu essayé un copier/collage spécial transposé dans Excel afin d'obtenir la... transposition de tes données ?
    Attention, les zones de copie et de collage ne peuvent se superposer.
    Mais peut-être n'est-ce pas ta question (!?!)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut Re
    Merci et désolé j'ignorai que tu n'avez pas télécharger le fichier, d'où mon étonnement à ta demande de code.
    je vais tenter d'être plus clair.

    Mon fichier comporte x paramètres de B1 à DU1 et 365 lignes (pour une année)
    Ce que je souhaite c'est à partir d'un userform selectionner de 1 à 8 paramètres à l'aide de combobox et d'en sortir un graphique sur une année dans un premier temps (et ensuite pour une période donnée mais ce n'est pas la priorité du moment).
    Le fichier que j'ai joint (garanti sans virus), pour l'exemple, fait ceci mais ce tableau est transposé, c'est à dire que les paramètres sont dans la colonne 1, mais je n'ai pas assez de colonnes pour une année complète.
    Mon problème vient des combobox, je n'arrive pas à leur donner en source la ligne1. Apparement les combobox ne fonctionnent qu'avec des colonnes.
    Ma question est donc comment affecter la ligne 1 comme source des combobox .

    Désolé encore pour le message précédent.

    Kes ;o)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    bonsoir et merci ouskel'n'or.

    Transposer le tableau ne me pose pas de problème.
    Le fichier que j'ai envoyé est là juste pour montrer ce que je souhaite obtenir, mais à partir du tableau transposé (avec 365 lignes)

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Alors tu peux transposer tes séries dans le graphe. Tu inverses les adresses des valeurs et des étiquettes des abscisses, ce qui revient à inverser X et Y.
    Dans Excel -> Sélection du graphe -> Données sources -> Onglet Série.
    Ceci pour l'explication. Pour le code, enregistre en faisant. Tu auras quelques adaptations à faire si tu utilises des variables pour les plages mais avec le code que tu auras obtenu, nous pourrons t'aider (...)
    Mais ce sera pour demain
    Bonne nuit

Discussions similaires

  1. [VB6] Exécuter une macro Access
    Par Nektanebos dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/02/2006, 16h32
  2. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  4. Qu'est-ce qu'une macro ?
    Par karli dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/09/2002, 03h38
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo