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 :

Transposition données VBA excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    chef d'(entreprise
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : chef d'(entreprise
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut Transposition données VBA excel
    Bonjour à tous,

    Je débute en macro et j'ai une demande bien précise.
    J'ai le tableau suivant :
    ref Taille 1 Taille 2 Taille 3 Taile 4
    AA 10 20 30 30


    Et j'aimerai afficher le résultat suivant dans une seconde feuille :

    Ref (AA) Taille 1 (10)
    Ref (AA) Taille 2 (20)
    Ref (AA) Taille 3 (30)
    Ref (AA) Taille 4 (40)

    Et je n'ai absolument aucune de la méthodologie ni de la technique à suivre pour arriver à ce résultat.

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    exemple précis sur ton exemple précis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ioi()
    Dim Tabl(), Titre As String, i As Long
    Tabl = Feuil1.Cells(1, 1).CurrentRegion.Value  ' adapater le nom de la feuille
    Titre = Tabl(1, 1) & " (" & Tabl(2, 1) & ")"
     
        With ThisWorkbook.Worksheets.Add
            For i = LBound(Tabl, 2) + 1 To UBound(Tabl, 2)
                With .Cells(Rows.Count, 1).End(xlUp)(2)
                    .Value = Titre
                    .Offset(0, 1).Value = Tabl(1, i) & " (" & Tabl(2, i) & ")"
                End With
            Next i
        End With
    End Sub

    manipulation des tableaux : http://silkyroad.developpez.com/vba/tableaux/

  3. #3
    Candidat au Club
    Homme Profil pro
    chef d'(entreprise
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : chef d'(entreprise
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour cette réponse rapide qui marche à merveille.
    J'ai encore quelque modifications à faire pour l'adapter à mon cas mais je pense pouvoir m'en sortir.
    Je dois notamment pouvoir le faire sur plusieurs avant transposition ce qui doit être réalisable.

    Un immense merci pour votre aide.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    cet exemple est basé sur le fait que tu ne possèdes qu'une ligne

    si tu as plusieurs lignes et plusieurs références, voici la généralisation, parmi plusieurs possibilités existantes :

    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
    Sub ioi()
    Dim Tabl(), Titre As String, i As Long, j As Long
    Tabl = Feuil1.Cells(1, 1).CurrentRegion.Value  ' adapater le nom de la feuille
        With ThisWorkbook.Worksheets.Add
            For j = LBound(Tabl, 1) + 1 To UBound(Tabl, 1)
                Titre = Tabl(1, 1) & " (" & Tabl(j, 1) & ")"
                For i = LBound(Tabl, 2) + 1 To UBound(Tabl, 2)
                    With .Cells(Rows.Count, 1).End(xlUp)(2)
                        .Value = Titre
                        .Offset(0, 1).Value = Tabl(1, i) & " (" & Tabl(j, i) & ")"
                    End With
                Next i
            Next j
        End With
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    chef d'(entreprise
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : chef d'(entreprise
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    Re bonjour,

    Une fois de plus merci pour votre aide qui s'avère une fois de plus très utile.

    Lorsqu'on lance la macro celle-ci se met à jour automatiquement dans une nouvelle feuille. Est ce qu'il serait possible que cela se mette à jour à chaque fois dans la même feuille ? ( Je suis désolé d'être plein de questions mais je suis pas mal dépassé sur le sujet ).

    Encore merci.

    Peut être qu'avec l'exemple suivant cela sera plus parlant !!

    La colonne A = Id est ma référence et les colonne à partir de AM = Taille 1 sont les valeurs de taille qui m'interesse (cf photos ci dessous)
    Nom : caractéristiques taille.jpg
Affichages : 98
Taille : 55,5 Ko

    J'aimerais que le résultat final ressemble à la photo ci-dessous. (les valeurs ne sont pas les mêmes car c'est un vieux fichiers rentré à la main). La colonne B n'est pas à prendre en considération.
    Les :1, :2,... qui suivent les valeurs de taille représente l'ordre des différentes tailles. Le ":1" représente la taille 1 et ainsi de suite, cette données doit apparaitre pour une raison d'affichage sur un autre logiciel, mais je peux créer une formule qui permet de l'ajouter si c'est infaisable en VBA. (là on dépasse de loin mes faibles compétences). A noteer que chaque produits ne dispose pas forcément du même nombre de taille ( 1 produit peut avoir une taille unique ou bien 10 tailles différentes).
    J’espère que ce que je dit est compréhensible et pas totalement irréalisable, cela m'éviterait des journées de copie de valeurs et les erreurs de copie qui en découlent .

    Nom : déclinaisons.jpg
Affichages : 101
Taille : 123,5 Ko

    Une fois de plus merci d'avance pour cette ultra-précieuse

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Par delà les explications que sont soignées, ce qui est rare en ce moment alors il faut le souligner, pourrais-tu joindre un mini fichier exemple, avec une feuille contenant des fausses données brutes et ces mêmes fausses données remises en forme, afin de mieux comprendre la conception et le positionnement des données ?

    car rien qu'avec ta copie écran, voyant que certaines colonnes entre le début de la feuille et la zone des valeurs à reprendre sont totalement vides ... l'utilisation d'un CurrentRegion dans ma proposition ne semble pas appropriée.
    alors autant avoir une vraie base

Discussions similaires

  1. [XL-2007] Extraction Données VBA Excel
    Par Guillaume83 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2011, 11h43
  2. [VBA-A]Copier des données d'Excel vers Word
    Par soad029 dans le forum VBA Word
    Réponses: 15
    Dernier message: 16/03/2006, 11h56
  3. [VBA] excel croisé dynamique et plage de données variables
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/01/2006, 18h14
  4. [VBA] Comparer des données en excel
    Par Micavk dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/10/2005, 12h26
  5. [VBA Excel] Extraction de données
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2005, 21h49

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