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 :

Traitement de tableau Excel en VBA


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
    Architecte technique
    Inscrit en
    Juillet 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 24
    Par défaut Traitement de tableau Excel en VBA
    Bonjour,
    Autre petit problème.
    J'essaye avec le code suivant de sauver la date de mise à jour d'une cellule faisant partie d'un tableau Excel
    Tout fonctionne correctement sauf lorsque je veux insérer une nouvelle ligne dans le tableau. A ce moment, je reçois une "Erreur 13 incompatibilité de type"
    A savoir, la colonne "Statut" du tableau est une liste de valeur.

    Merci d'avance pour votre aide.

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Tablo As ListObject
    Set Tablo = Feuil3.ListObjects("Checkliste")
    With Tablo.ListColumns("Statut")  
    MsgBox Tablo.ListColumns("Statut").DataBodyRange.Address
                End With
     
         If Not Application.Intersect(Target, Range(Tablo.ListColumns("Statut").DataBodyRange.Address)) Is Nothing Then
     
            If Target.Offset <> "" Then
            Target.Offset(0, 1) = Date
         End If
     
    End If
    End Sub

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

    Si vous n'insérez pas une nouvelle ligne mais que vous saisissez votre valeur dans la colonne Statut après la dernière ligne du tableau, vous ne rencontrez pas ce problème. Une nouvelle ligne est intégrée au tableau et la cellule de la colonne Statut contient bien la liste de validation.

    Confirmez-vous ?

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Pour ajouter une ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("bd").ListObjects(1).ListRows.Add (1)       ' Ajout d'une ligne en position 1
    Sheets("bd").ListObjects(1).ListRows.Add            ' Ajout d'une ligne en fin
    Boisgontier

  4. #4
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 24
    Par défaut
    Bonjour Eric,

    Oui c'est bien ca.
    Mais j'ai le problème quand j'insère une ligne dans le tableau ou si je supprime une ligne.

    boisgontierjacques
    le but n'est pas t'insérer (ou supprimer) une ligne via le code VBA mais directement dans le tableau dans la feuille excel.



    Merci déjà à vous deux.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Pabri Voir le message

    Ci-dessous le code adapté de Jacques neutralisant l'événement sur l'onglet Feuil3 pour éviter l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Sub Test()
     
         With Feuil3.ListObjects("Checkliste")
              Application.EnableEvents = False
              '.ListRows.Add (1) ' Ajout d'une ligne en position 1
              .ListRows.Add ' Ajout d'une ligne en fin
              Application.EnableEvents = True
     
         End With
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 24
    Par défaut
    Merci Eric.

    Mais je pense m'être mal fait comprendre ou alors c'est moi qui ne comprend pas (ce qui est bien possible vu mon peu d'expérience en VBA)


    En fait, je ne veux pas insérer (ou supprimer) de ligne par la procédure VBA (dans le code)

    La procédure est juste censée mettre une date si une cellule d'une colonne d'un tableau (colonne "Statut") change.


    L'insertion ou la suppression est censée se faire dans la feuille de façon manuelle (insert ligne de tableau)


    Encore merci

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

Discussions similaires

  1. [AC-2007] Inserer une colonne dans un tableau Excel par VBA Access
    Par jmde dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/06/2017, 15h23
  2. Réponses: 6
    Dernier message: 10/03/2011, 09h37
  3. [WD-2003] Word et tableau excel en VBA
    Par sellig60 dans le forum VBA Word
    Réponses: 3
    Dernier message: 25/10/2010, 18h12
  4. [VBA-E] Construction d'un tableau EXCEL avec VBA
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/05/2007, 07h35
  5. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06

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