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 :

VBA: Ligne de code qui ne fonctionne pas pour supprimer une colonne en fonction d'une combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Janvier 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Janvier 2016
    Messages : 72
    Par défaut VBA: Ligne de code qui ne fonctionne pas pour supprimer une colonne en fonction d'une combobox
    Bonjour les développeurs ,

    Je me redirige vers vous car je n'arrive pas à résoudre mon problème tout d'abord voici mon 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
    Private Sub UserForm_Activate() 'Remplissage de la combobox
    Dim i As Integer
        Set d = CreateObject("Scripting.Dictionary")
        With Sheets("TBR")
            For i = 2 To .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
                If .Cells(1, i).Value <> "" Then d(.Cells(1, i).Value) = i
            Next i
        End With
        Me.ComboBox1.List = d.Keys
    End Sub
     
    Private Sub CommandButton1_Click()
       Dim d As Object
       Application.DisplayAlerts = False
        V = Me.ComboBox1.Value
        Sheets("TBR").Columns(d(Val(V))).Delete 'PROBLEME A CETTE LIGNE
        Sheets(V).Delete 'suppression de l'onglet qui porte la valeur de v
        Application.DisplayAlerts = True
        Unload Me
        UserForm1.Show
    End Sub
    L'ensemble de mon code fonctionne à part la ligne Sheets("TBR").Columns(d(Val(V))).Delete qui me met une erreur.

    L'idée de ce code c'est que lorsque je sélectionne une valeur dans ma combobox et que je clique sur supprimer alors la colonne et l'onglet qui ont la valeur de la combobox se supprime.

    Pour vous est-ce que la syntaxe est bonne déjà?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut
    Bonjour,

    Pour supprimer une colonne il faut soit spécifier la colonne par son "numéro" ou sa "lettre" associée.

    Dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TBR").Columns(d(Val(V))).Delete
    Je ne vois pas pourquoi d(Val(V)) renverrai une lettre ou un numero.
    Mais je me trompe peut-être, tu peux nous dire ce que tu as comme choix possible dans ton combobox?

    PS:
    Pour ma part, je remplacerai le:
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V = UserForm1.ComboBox1.Value
    Le "Me" est une notion de développement Objet, qui, déclaré dans une classe, fait référence à son instance.
    Or là ton bouton CommandButton1 est associé à ta feuille (onglet), et pas au UserForm1 non ?
    Donc c'est possible que ton compilateur VBA comprenne ce que tu veux dire, mais j'en mettrai pas ma main à couper !

    Slooby

  3. #3
    Membre confirmé
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Janvier 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Janvier 2016
    Messages : 72
    Par défaut
    Bonjour,

    Ce que je peux avoir comme valeur dans la combobox est du type : FE77712-PL01
    Toujours avec la même structure

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    j'ai l'impression que tu ne répond pas à la question de Slooby

    et pour controler si tu mettais cette ligne avant celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TBR").Columns(d(Val(V))).Delete
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/05/2015, 15h43
  2. Réponses: 10
    Dernier message: 30/03/2007, 17h30
  3. Code qui ne fonctionne pas
    Par maxti dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/10/2006, 11h45
  4. [VBA-E]Select case qui ne fonctionne pas :(
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 31/01/2006, 12h13
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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