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 :

derniere ligne d'un tableau vide


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Avatar de frunch
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2022
    Messages : 12
    Points : 95
    Points
    95
    Par défaut derniere ligne d'un tableau vide
    Bonjour à tous,
    Nom : 2.png
Affichages : 46
Taille : 619 octets
    Quand on veut écrire à la derniére ligne d'une liste, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B1000").End(xlUp).Row
    fonctionne bien pour écrire à la 2éme ligne ou les autres, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B1000").End(xlUp).Row+1
    Nom : 1.png
Affichages : 45
Taille : 1,6 Ko
    Mais avec un tableau c'est pas le cas, on écrit à la 3éme ligne.
    Quelle est la solution svp ?
    Merci
    Images attachées Images attachées   

  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
    11 766
    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 : 11 766
    Points : 28 168
    Points
    28 168
    Billets dans le blog
    42
    Par défaut
    Bonjour,
    Petit exemple on l'on écrit le texte "Ici" à la dernière ligne de la colonne "Ref" du tableau nommé "t_Data" à condition que l'option Ligne total ne soit pas cochée sinon, il faut adapter le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub T()
      Dim oList As ListObject
      Set oList = Range("t_Data").ListObject
      With oList.ListColumns("Ref").DataBodyRange
      .Cells(.Rows.Count + 1, 1).Value = "Ici"
      End With
      Set oList = Nothing
    End Sub
    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
    Ma dernière contribution : VBA - Les macros complémentaires

  3. #3
    Membre régulier
    Avatar de frunch
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2022
    Messages : 12
    Points : 95
    Points
    95
    Par défaut
    à condition que l'option Ligne total ne soit pas cochée..
    Ou çà ?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    11 766
    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 : 11 766
    Points : 28 168
    Points
    28 168
    Billets dans le blog
    42
    Par défaut
    Bonjour,
    Ou çà ?
    ici
    Nom : 221204 - Option Ligne Total.png
Affichages : 33
Taille : 14,2 Ko

    Avec ce code, pas de souci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub t()
      Dim oList As ListObject
      Dim flg As Boolean
      Set oList = Range("t_Data").ListObject
      With oList
       flg = .ShowTotals                        ' Stocke la propriété ShowTotals
      .ShowTotals = (flg And False)             ' Désactive la ligne total si elle est sélectionnée
       With .ListColumns("Ref").DataBodyRange   '
       .Cells(.Rows.Count + 1, 1).Value = "Ici" ' Ecrit à la dernière ligne
       End With
      .ShowTotals = flg                         ' Remet la propriété ShowTotals comme elle était avant l'écriture
      End With
      Set oList = Nothing
    End Sub
    A lire éventuellement Apprendre à utiliser les tableaux structurés Excel : création, manipulations et avantages(1)
    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
    Ma dernière contribution : VBA - Les macros complémentaires

  5. #5
    Membre régulier
    Avatar de frunch
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2022
    Messages : 12
    Points : 95
    Points
    95
    Par défaut
    Ok, c'est pas coché, et le code adapté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub T()
      Dim oList As ListObject
      Set oList = Range("TBL_BDD").ListObject 'nom tablo
      With oList.ListColumns("Personne").DataBodyRange
      .Cells(.Rows.Count + 1, 1).Value = "Ici"
      End With
      Set oList = Nothing
    End Sub
    me donne
    Nom : 1.png
Affichages : 33
Taille : 1,3 Ko
    Images attachées Images attachées  

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    11 766
    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 : 11 766
    Points : 28 168
    Points
    28 168
    Billets dans le blog
    42
    Par défaut
    Bonjour,
    Je teste tous les codes que je publie.
    Il y a de forte chance que la première ligne n'était pas supprimée et donc forcément la propriété Count de la la collection Rows renvoie 1
    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
    Ma dernière contribution : VBA - Les macros complémentaires

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    8 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 8 109
    Points : 15 626
    Points
    15 626
    Par défaut
    Bonjour à tous

    Pour tous les cas, tableau vide ou déjà rempli, ceci fonctionne et fait abstraction des lignes Excel et donc de l'emplacement du tableau sur l'onglet, du total activé on non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub t()
      Dim oList As ListObject
      Dim flg As Boolean
      Set oList = Range("t_Data").ListObject
      With oList
        x = .ListRows.Add.Index
        .ListColumns("Ref").DataBodyRange.Rows(x) = "ici"
      End With
      Set oList = Nothing
    End Sub
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/06/2015, 16h38
  2. [XL-2007] trouver le numéro de la derniere ligne d'un tableau
    Par problemeaide dans le forum Excel
    Réponses: 1
    Dernier message: 21/09/2012, 16h49
  3. WORD MACRO derniere ligne d'un tableau
    Par gillesse60 dans le forum VBA Word
    Réponses: 11
    Dernier message: 08/11/2008, 19h26
  4. [VBA-E] trouver la derniere ligne de mon tableau
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/03/2007, 23h41
  5. supprimer lignes/cellules de tableau vides
    Par Drozo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2006, 14h21

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