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 :

Générer une liste de colonnes provenant d'une matrice selon la valeur dans la ligne correspondante [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 105
    Par défaut Générer une liste de colonnes provenant d'une matrice selon la valeur dans la ligne correspondante
    Bonjour le forum,

    je cherche depuis quelques jours, sans y parvenir. J'ai une matrice avec lignes et colonnes. Dans les cellules de la matrice, il y a des croix ou cela est nécessaire.

    Selon le choix de l'utilisateur, j'aimerais aller lire dans la matrice, à la ligne concernée (par le choix de l'utilisateur)
    1# ou il y a une croix
    2# lister le nom de la colonne

    J'ai mis un petit exemple de ce que j'aimerais arriver à faire. Est-ce que qqn peut m'aider?

    merci et salutations.
    skeut
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    es-tu en mesure de déterminer la ligne dans ton tableau qui correspond au choix de ton utilisateur ?

    Tu peux te faire une fonction VBA qui prend en parametre la ligne d'en tete et la plage de chaque ligne et te retourne la concaténation selon les x
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Ou autre proposition avec une macro évènementielle rattachée à la feuille "CHOIX"
    Pièce jointe 537511

    Le code
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim f1 As Worksheet, f2 As Worksheet
        Dim i As Long, DerLig_Tab As Long, DerCol_Tab As Long, Lig_Dest As Long, Col_Dest As Long
        Dim Tabl As String, Valeur As String
        Dim v As Object
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        If Target.Address = "$B$3" Or Target.Address = "$B$5" Then
            Set f1 = Sheets("CHOIX")
            Set f2 = Sheets("Matrix")
            f1.Range("H3:H100").ClearContents
            DerLig_Tab = f2.Range("A" & Rows.Count).End(xlUp).Row
            DerCol_Tab = f2.[XFD1].End(xlToLeft).Column
            Tabl = Range(Cells(1, "A"), Cells(DerLig_Tab, DerCol_Tab)).Address
            Valeur = f1.[B7]
            Set v = f2.Range(Tabl).Find(Valeur, LookIn:=xlValues, lookat:=xlWhole)
            Lig_Dest = 3
            Col_Dest = 8
            If Not v Is Nothing Then
                For i = 2 To DerCol_Tab
                    If f2.Cells(v.Row, i) = "x" Then
                        f1.Cells(Lig_Dest, Col_Dest) = f2.Cells(1, i)
                        Lig_Dest = Lig_Dest + 1
                    End If
                Next i
            End If
        End If
        Application.EnableEvents = True
        Set v = Nothing
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Le fichier
    Pièce jointe 537514

    Cdlt

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 105
    Par défaut
    merci @ARTURO83, c'est exactement ceci. Je vais maintenant continuer et améliorer.

    merci à tous et belle journée.
    skeut.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut Aute exemple avec l'utilisation de tableaux structurés
    Bonjour …

    en retard par rapport à Arturo
    Nom : Filtre Validations.jpg
Affichages : 188
Taille : 338,8 Ko
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je rappelle à nouveau que la notation à crochet, abondamment utilisée dans le code proposé, est une mauvaise syntaxe de code, dont les très rares utilisateurs n'ont jamais voulu expliquer les avantages qu'ils en retiraient. J'explique pourquoi il ne faut pas l'utiliser dans ce billet de blog.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment générer une matrice de rotation pour un axe et un angle donnés ?
    Par Kromagg dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 20/07/2009, 12h45
  2. générer une matrice aléatoire
    Par harris_macken dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 17/03/2008, 19h23
  3. Réponses: 0
    Dernier message: 25/02/2008, 15h31
  4. Générer une image et l'afficher dans une page web
    Par Rodrigue dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2007, 19h32
  5. [VB.net] Générer une date selon condition
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 16h12

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