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 :

Suppression de colonne et de ligne d'un tableau en VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2022
    Messages : 6
    Par défaut Suppression de colonne et de ligne d'un tableau en VBA
    Bonjour,
    Je n'arrive pas à faire ce que je veux j'ai essayé plusieurs choses mes cela ne fonctionne pas
    Je vous explique: J'ai un tableau sur une feuille qui contient plus de 900 lignes et une 15ème de colonnes
    J'ai réalisé un VBA avec un Userform avec une combobox qui permet de sélectionner un nom dans la colonne 1, une fois le choix validé,
    cela crée une nouvelle feuille, avec un tableau, qui normalement ne devrai contenir que les lignes ayant le nom sélectionné et qui en plus devrait n'avoir que quelques colonnes de plus après que le second tableau soit créé il faut que la colonne 1 contenant le nom disparaisse également
    N'étant pas hyper doué en VBA je me tourne vers une âme charitable

    J'ai mis 2 captures une avec l'extrait du tableau complet et l'autre le résultat escompté
    Nom : Capture d’écran 2022-11-03 214449.jpg
Affichages : 434
Taille : 199,2 Ko
    Nom : Capture d’écran 2022-11-03 214715.jpg
Affichages : 389
Taille : 32,0 Ko

    Si vous pouvez m'aider je vous serai bien reconnaissant

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour dregniez

    Est-il possible d'avoir le fichier et/ou le code 🤔

    A+

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,

    As-tu pensé à Power Query ?

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    Juste pour donner quelques idées, un petit exemple utilisant ce code au niveau du formulaire contenant une zone de liste.
    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
    Option Explicit
     
    Private Sub ListBox1_Click()
        Dim sQuery As String, k1 As Long, k2 As Long
        '--- récupère la requête en cours et y remplace le nom du détenteur actuel
        sQuery = ThisWorkbook.Queries("SelonNom").Formula
        k1 = InStr(sQuery, "[DETENTEUR] = ")
        k2 = InStr(k1, sQuery, ")")
        sQuery = Left(sQuery, k1 + 14) & Me.ListBox1.Text & Mid(sQuery, k2 - 1)
        'Debug.Print sQuery
        '--- supprime et remet la requête modifiée avec le nouveau détenteur
        ThisWorkbook.Queries("SelonNom").Delete
        ThisWorkbook.Queries.Add Name:="SelonNom", Formula:=sQuery
        ThisWorkbook.RefreshAll
    End Sub
     
    Private Sub UserForm_Initialize()
        Dim v, e
        v = Range("Tableau1[DETENTEUR]").Value
        With CreateObject("scripting.dictionary")
            .comparemode = 1
            For Each e In v
                If Not .exists(e) Then .Add e, Nothing
            Next
            Me.ListBox1.Clear
            If .Count Then Me.ListBox1.List = Application.Transpose(.keys)
        End With
        ListBox1_Click
        ThisWorkbook.Worksheets("FiltréSurNom").Select
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2022
    Messages : 6
    Par défaut
    Bonjour Eric,
    Merci, pour cette belle piste je vais voir comment je peux maintenant l'adapter pour coller au projet

  6. #6
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2022
    Messages : 6
    Par défaut
    Bonjour Eric,
    Je ne connaissais pas du tout cette fonction dans Excel
    Pourrai tu m'en dire plus concernant la façon de créer la requête, car quand je modifie le noms et le nombre de colonne du tableau bien qu'en modifiant dans le VBA et dans la structure de la requête,
    j'ai une erreur "Expression.Error : Jeton RightParen attendu." et en cliquant sur afficher l'erreur dans l'éditeur avancé c'est le terme "Colonnes" de la dernière ligne du Let qui ce met en surbrillance
    Et je ne comprends pas pourquoi
    Merci d'avance

    Cdt.

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

Discussions similaires

  1. [XL-2010] Transposer un tableau de 51 colonnes sur une ligne en un tableau de 12 colonnes
    Par daniel78800 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/08/2016, 10h04
  2. Réponses: 4
    Dernier message: 10/12/2013, 10h17
  3. Réponses: 2
    Dernier message: 22/03/2012, 14h18
  4. [XL-2010] Problème de lignes dans un tableau en VBA
    Par fidecourt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2011, 12h29
  5. Réponses: 1
    Dernier message: 28/09/2010, 17h36

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