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 :

Formulaire personalisé excel [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut Formulaire personalisé excel
    Bonsoir,

    J'ai trouver un tuto pour faire mon formulaire sous excel personnalisé ceux que j'ai fait mais j'ai modifier a mes attente seule problème je ne peux pas faire l'excution, il me mette une erreur : "Erreur d'exécution '9': L'indice n'appartient pas à la sélection.

    Voici capture d'écran + le code
    Nom : Capture.PNG
Affichages : 305
Taille : 5,5 Ko

    Nom : Capture2.PNG
Affichages : 302
Taille : 12,1 Ko

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Option Explicit
    Dim Ws As Worksheet
     
    'Pour le formulaire
    Private Sub UserForm_Initialize()
        Dim J As Long
        Dim I As Integer
     
        ComboBox2.ColumnCount = 1 'Pour la liste déroulante Categorie
        ComboBox2.List() = Array("1", "2", "3")
        ComboBox3.ColumnCount = 2 'Pour la liste déroulante Achat/Vente
        ComboBox3.List() = Array("Achats", "Ventes", "3")
        Set Ws = Sheets("test") 'Correspond au nom de votre onglet dans le fichier Excel
        With Me.ComboBox1
            For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
                .AddItem Ws.Range("A" & J)
            Next J
        End With
        For I = 1 To 7
            Me.Controls("TextBox" & I).Visible = True
        Next I
    End Sub
    'Pour la liste déroulante Code
    Private Sub ComboBox1_Change()
        Dim Ligne As Long
        Dim I As Integer
     
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        ComboBox2 = Ws.Cells(Ligne, "B")
        For I = 1 To 7
            Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
        Next I
    End Sub
     
     
    'Pour le bouton Nouveau contact
    Private Sub CommandButton1_Click()
        Dim L As Integer
        Dim J As Long
        Dim I As Integer
     
        If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
            L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
            Range("A" & L).Value = ComboBox1
            Range("B" & L).Value = ComboBox2
            Range("C" & L).Value = TextBox1
            Range("D" & L).Value = TextBox2
            Range("E" & L).Value = TextBox3
            ComboBox1.Clear
            Set Ws = Sheets("test") 'Correspond au nom de votre onglet dans le fichier Excel
            With Me.ComboBox1
                For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
                    .AddItem Ws.Range("A" & J)
                Next J
            End With
        End If
    End Sub
     
    'Pour le bouton Modifier
    Private Sub CommandButton2_Click()
        Dim Ligne As Long
        Dim I As Integer
     
        If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
            If Me.ComboBox1.ListIndex = -1 Then Exit Sub
            Ligne = Me.ComboBox1.ListIndex + 2
            Ws.Cells(Ligne, "B") = ComboBox2
            For I = 1 To 7
                If Me.Controls("TextBox" & I).Visible = True Then
                    Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
                End If
            Next I
        End If
    End Sub
     
    'Pour le bouton Quitter
    Private Sub CommandButton3_Click()
        Unload Me
    End Sub
    Bonne soirée

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je ne vois pas 7 textboxes nommées TextBox1, Textbox2, ... Textbox7 sur ton image ...

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     For I = 1 To 7
            Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
        Next I
    tu n'as que 3 textbox

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Et je pense que ce n'est pas la seule carence (le message aurait été différent de celui rapporté ... et d'ailleurs mal rapporté ...)

    EDIT : il a donc, en plus de la remarque faite en ce qui concerne les textboxes, une erreur de nom concernant l'une de ses deux feuilles.
    Ou absence totale, ou un espace indu devant ou derrière le nom.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    Citation Envoyé par mjpmjp Voir le message
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     For I = 1 To 7
            Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
        Next I
    tu n'as que 3 textbox

    @+JP
    Merci a toi, maintenant, j'ai une autre erreur : Erreur d'excution -2147024809 (800070057) : Objet spécifié introuvable.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Merci a toi, maintenant, j'ai une autre erreur : Erreur d'excution -2147024809 (800070057) : Objet spécifié introuvable.
    Il y a là vraiment mélange de tout !
    Soyons clairs !
    - le premier message ("Erreur d'exécution '9': L'indice n'appartient pas à la sélection.") n'avait qu'une cause possible : évocation d'une feuille non existante sous le nom exact employé pour l'évoquer
    - le second message ("Erreur d'excution -2147024809 (800070057) : Objet spécifié introuvable") n'a également quant à lui qu'une cause possible : évocation d'un contrôle non existant sous le nom exact - "Textbox" & I en ce qui concerne les textboses, "Combobox1" "Combobox2" et "Combobox3 en ce qui concerne les Comboboxes" - employé pour l'évoquer

    Tu es seul, Maxime45400, à pouvoir déterminer quelle est la feuille (1er message) ou le contrôle (second message) concerné(e)(s). Il faudrait venir sur ta chaise et devant ton écran pour le déterminer.

    Ceci étant dit : une ligne est mise en surbrillance lorsque tu entres en mode debug. Elle est la ligne qui comporte une erreur. Cela devrait t'aider à identifier la cause de l'erreur.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Maxime45400 Voir le message
    je ne peux pas faire l'excution, il me mette une erreur : "Erreur d'exécution '9': L'indice n'appartient
    Citation Envoyé par Maxime45400 Voir le message
    j'ai une autre erreur : Erreur d'excution -2147024809 (800070057) : Objet spécifié introuvable.
    Lorsque tu indiques une erreur, indique aussi la ligne de code surlignée par cette erreur.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Lorsque tu indiques une erreur, indique aussi la ligne de code surlignée par cette erreur.
    La ligne en surbrillance est la suivante : "Private Sub UserForm_Initialize()"

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Outre ce qui t'a déjà été dit plus haut (je dis bien "outre")
    Il n'est pas très adroit d'évoquer dans l'évènement Initialize les objets d'un userform. Il ne sont pas forcément tous déjà identifiables à ce stade (surtout si nombreux).
    Utilise l'évènement Activate.

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

Discussions similaires

  1. Comment exporter un formulaire dans excel
    Par branqueira dans le forum Access
    Réponses: 3
    Dernier message: 28/02/2006, 11h35
  2. [VBA-E]formulaire dans excel
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/02/2006, 10h30
  3. les formulaires bloquent excel
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/10/2005, 18h42
  4. Comment exporter un formulaire sous excel
    Par Naud dans le forum Access
    Réponses: 5
    Dernier message: 12/10/2005, 10h44
  5. Exporter un sous formulaire sous excel
    Par titou dans le forum Access
    Réponses: 3
    Dernier message: 14/02/2005, 17h01

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