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 :

Problème code + message erreur [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut Problème code + message erreur
    Bonjour à tous,

    J'ai mis en place ce code qui me permet de remplir un tableau dans une feuille de calcul à partir d'un Uf. Je n'ai rencontré aucun problème lors du remplissage de la 1ère ligne du tableau.
    Lorsque que j'ai voulu en saisir une 2ème, 2 messages sont apparus au moment de la validation à partir de l'UF :

    J'ai déjà utilisé ce code par ailleurs et il fonctionne bien, dans cette application il bug, je ne comprends pas !!

    1 - "La méthode ADD a échoué"

    2 - Erreur système & H80010108 (-2147417848). L'objet invoqué s'est déconnecté de ses clients.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    Private Sub bouton1_Click()
    Dim DL As Integer
     
        If Me.Txt_Descrip <> "" And Me.Txt_Design <> "" And Me.Txt_PAHT <> "" And Me.Txt_Stock <> "" And Me.Cmb_Fourn.ListIndex <> "" And Me.Cmb_Tva.ListIndex <> "" Then
     
            Sheets("Articles").ListObjects(1).ListRows.Add
                   DL = Sheets("Articles").Range("B1048546").End(xlUp).Row
     
            'On ajoute les articles au tableau de la feuille "Articles"
            With Sheets("Articles")
            .Range("B" & DL) = Me.Label_NumEnr.Caption
            .Range("C" & DL) = Me.Cmb_Fourn
            .Range("E" & DL) = Me.Txt_Design
            .Range("F" & DL) = Me.Txt_Descrip
            .Range("G" & DL) = CDbl(Me.Txt_PAHT)
            .Range("H" & DL) = Me.Cmb_Tva
            .Range("I" & DL) = CInt(Me.Txt_Nobre)
            .Range("L" & DL) = CInt(Me.Txt_Stock)
            .Range("N" & DL) = "Active"
     
            'On ajoute +1 à la cellule C4 de la feuille "Données" - ART-00001 + 1 = ART-00002
            Sheets("Données").Range("C4") = Sheets("Données").Range("C4") + 1
            End With
     
            'On efface ce qu'il ya dans les contrôles de l'UF
            Me.Cmb_Fourn = ""
            Me.Txt_Design = ""
            Me.Txt_Descrip = ""
            Me.Txt_PAHT = ""
            Me.Cmb_Tva = ""
            Me.Txt_Nobre = ""
            Me.Txt_Stock = ""
            ThisWorkbook.Save
         End If
    End Sub
    Merci par avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Vba14 Voir le message
    Bonjour,

    Il serait plus simple de travailler avec un objet ListRow. Le code ci-dessous est à adapter pour que les colonnes soient remplies avec les bons champs. J'ai neutralisé vos lignes de codes simplement pour illustrer l'exemple. Je suppose par ailleurs que le tableau commence en colonne A.

    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
     
    Private Sub bouton1_Click()
    'Dim DL As Integer
    Dim MonArticle As ListRow
     
       ' If Me.Txt_Descrip <> "" And Me.Txt_Design <> "" And Me.Txt_PAHT <> "" And Me.Txt_Stock <> "" And Me.Cmb_Fourn.ListIndex <> "" And Me.Cmb_Tva.ListIndex <> "" Then
     
            Set MonArticle = Sheets("Articles").ListObjects(1).ListRows.Add
               '    DL = Sheets("Articles").Range("B1048546").End(xlUp).Row
     
            'On ajoute les articles au tableau de la feuille "Articles"
     
            With MonArticle
     
                .Range(1, 2) = "B"
                .Range(1, 3) = "C"
                .Range(1, 5) = "E"
                .Range(1, 6) = "F"
                .Range(1, 7) = "G"
                .Range(1, 8) = "H"
                .Range(1, 9) = "I"
                .Range(1, 12) = "L"
                .Range(1, 14) = "N"
     
            End With
     
            Set MonArticle = Nothing
     
     
         '   With Sheets("Articles")
         '   .Range("B" & DL) = Me.Label_NumEnr.Caption
         '   .Range("C" & DL) = Me.Cmb_Fourn
         '   .Range("E" & DL) = Me.Txt_Design
         '   .Range("F" & DL) = Me.Txt_Descrip
         '   .Range("G" & DL) = CDbl(Me.Txt_PAHT)
         '   .Range("H" & DL) = Me.Cmb_Tva
         '   .Range("I" & DL) = CInt(Me.Txt_Nobre)
         '   .Range("L" & DL) = CInt(Me.Txt_Stock)
         '   .Range("N" & DL) = "Active"
     
            'On ajoute +1 à la cellule C4 de la feuille "Données" - ART-00001 + 1 = ART-00002
         '   Sheets("Données").Range("C4") = Sheets("Données").Range("C4") + 1
         '   End With
     
            'On efface ce qu'il ya dans les contrôles de l'UF
          '  Me.Cmb_Fourn = ""
          '  Me.Txt_Design = ""
          '  Me.Txt_Descrip = ""
          '  Me.Txt_PAHT = ""
          '  Me.Cmb_Tva = ""
          '  Me.Txt_Nobre = ""
          '  Me.Txt_Stock = ""
          '  ThisWorkbook.Save
        ' End If
    End Sub

  3. #3
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Bonjour Eric,

    Merci pour votre participation. Mon tableau commence en colonne B.

    Je vais regarder votre code et le tester en directe dans mon appli et je reviens vous dire ce qu'il en est.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Vba14 Voir le message
    Mon tableau commence en colonne B.
    Dans ce cas, il faut simplement modifier les numéros de colonne dans les lignes .Range(1,...) = "XXXX"

  5. #5
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    J'ai fait un premier test, et dans mes colonnes du tableau arrivent les lettres du code : Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Range(1,1)="B" alors la lettre B arrive en colonne B
    Je regarde un peu plus près, j'ai encore dû me planter quelque part ....

  6. #6
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    J'ai résolu ce problème. Mais j'en rencontre un autre, lorsque je fais une nouvelle saisie, il me créé systématiquement une ligne vide entre la dernière saisie et la nouvelle.

    Voici le code complet

    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
     
    Private Sub bouton1_Click()
    Dim MonArticle As ListRow
     
        If Me.Txt_Descrip <> "" And Me.Txt_Design <> "" And Me.Txt_PAHT <> "" And Me.Txt_Stock <> "" And Me.Cmb_Fourn.ListIndex <> "" And Me.Cmb_Tva.ListIndex <> "" Then
            Sheets("Articles").ListObjects(1).ListRows.Add
     
            Set MonArticle = Sheets("Articles").ListObjects(1).ListRows.Add
     
            'On ajoute les articles au tableau
            With MonArticle
            .Range(1, 1) = Me.Label_NumEnr.Caption
            .Range(1, 2) = Me.Cmb_Fourn
            .Range(1, 4) = Me.Txt_Design
            .Range(1, 5) = Me.Txt_Descrip
            .Range(1, 6) = CDbl(Me.Txt_PAHT)
            .Range(1, 7) = Me.Cmb_Tva
            .Range(1, 8) = CInt(Me.Txt_Nobre)
            .Range(1, 10) = CInt(Me.Txt_Stock)
            .Range(1, 13) = "Active"
            End With
            Set MonArticle = Nothing
     
            Sheets("Données").Range("C4") = Sheets("Données").Range("C4") + 1
     
            Me.Cmb_Fourn = ""
            Me.Txt_Design = ""
            Me.Txt_Descrip = ""
            Me.Txt_PAHT = ""
            Me.Cmb_Tva = ""
            Me.Txt_Nobre = ""
            Me.Txt_Stock = ""
            ThisWorkbook.Save
         End If
    End Sub

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

Discussions similaires

  1. Problème avec message erreur
    Par Udani dans le forum MATLAB
    Réponses: 10
    Dernier message: 21/12/2009, 07h58
  2. Réponses: 0
    Dernier message: 19/06/2008, 16h44
  3. Problème avec message d'erreur
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 15/10/2007, 16h21
  4. Problème de message d'erreur sur une fonction SNMP
    Par kriptoo dans le forum Langage
    Réponses: 1
    Dernier message: 18/05/2007, 02h08
  5. Problème de message d'erreur
    Par maitreblitosaure dans le forum Access
    Réponses: 2
    Dernier message: 28/06/2006, 15h28

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