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 ajout ligne sur tableau structuré [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut problème ajout ligne sur tableau structuré
    Bonjour à tous,

    Sans doute que les spécialistes des tableaux structurés vont me donner la réponse mais malgré les recherches et les tests je n'ai rien trouvé.

    J'ai ce code qui introduit une nouvelle ligne dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            lgl = Range("T_lieu[Numéro]").ListObject.ListRows.Count + 2
            mxl = Application.Max(Range("T_Lieu[Numéro]")) + 1
            Set wl = Sheets("Lieux").Cells(lgl, 1)
                wl.Offset(-1, 0).ListObject.ListRows.Add AlwaysInsert:=True
                wl.Value = mxl
                wl.Offset(0, 1).Value = CZI.TextBox5.Value
                wl.Offset(0, 2).Value = CZI.TextBox6.Value
    Il fonctionne parfaitement sur les versions excel 7/10 mais en versions 13/16
    il plante invariablement après l'insertion de la ligne et excel se ferme.

    Quelle modification dois-je apporter pour qu'il fonctionne aussi sur ces versions ?

    Merci d'avance pour vos suggestions.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un exemple d'une insertion de ligne dans le tableau structuré présent dans la feuille active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim oList As ListObject
     Set oList = ActiveSheet.ListObjects(1)
     oList.ListRows.Add
    Sans argument la méthode Add ajoute une ligne après la dernière.
    Pour insérer une ligne avant la première c'est
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  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,

    Exemple si la table est nommée Client

    Version Excel VBA 16

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      enreg = [client].Rows.Count + 1
      [client].Item(enreg, 1) = Val(Me.Id)
      [client].Item(enreg, 2) = Me.Nom
      [client].Item(enreg, 3) = Me.Rue
      [client].Item(enreg, 4) = Me.Ville
      [client].Item(enreg, 5) = Me.CodePostal
      [client].Item(enreg, 6) = Me.Tph
      [client].Item(enreg, 7) = Me.Portable
      [client].Item(enreg, 8) = Me.Email
      [client].Item(enreg, 9) = Me.Remarques
    Boisgontier
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour et merci de vos réponses.

    @boisgontierjacques j'ai essayé cette méthode mais en 2016 elle ne fonctionne pas dans mon cas car il suffisait de mettre en commentaire ma ligne "add".

    @Philippe Tulliez j'avais aussi essayé cette méthode mais en 2016 elle plante aussi, je viens de tester à nouveau.

    La création de ligne se fait à partir d'un second userform si elle n'existe pas dans le combobox du premier userform

    Cela vient peut-être de là : je vais essayer de passer par un frame sur le premier userform.

    Merci d'avoir répondu

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonsoir,

    J'ai enfin trouvé le problème, j'ai :
    -créé une nouvelle feuille
    -créé un nouveau tableau
    -transféré mes données
    -supprimé l'ancienne feuille
    -renommé la feuille et le tableau
    et ce qui fonctionnait en 2007/2010 fonctionne aussi en 2013/2016

    Rien pourtant ne distingue apparemment l'ancienne et la nouvelle feuille qui a exactement les mêmes données.

    Sans doute une erreur lors de la sauvegarde de la feuille détectée par les nouvelles versions ?

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonsoir
    oui moi aussi les tableaux structurés enregistrés avec 2016 plantent chez moi avec Addrow et en le re sauvant avec 2007 il re fonctionnent
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. problème de compilation sur tableau de List générique
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 25/03/2009, 16h09
  2. Réponses: 1
    Dernier message: 20/12/2008, 14h39
  3. Ajouter ligne dans tableau / Ajouter checkbox & signet
    Par TIREUR dans le forum VBA Word
    Réponses: 5
    Dernier message: 16/06/2007, 00h45
  4. Réponses: 3
    Dernier message: 21/09/2006, 15h55
  5. ajout ligne dans tableau sous IE
    Par n00noors dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/07/2006, 12h55

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