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

Excel Discussion :

manipulation des tableaux comme objets [Toutes versions]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Par défaut manipulation des tableaux comme objets
    Bonjour,
    Je cherche à ajouter une ligne dans un tableau existant (que je complète en partie automatiquement via un fichier et en partie manuellement).

    Il s'agit de pouvoir ajouter une ligne dans la partie automatisée dans le tableau, me positionner dans la première colonne de la ligne ajoutée et de ranger ensuite ce tableau par ordre alphabétique.

    Pour le moment j'ai une info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Worksheets(1).Range("data_NometPrenom").ListObject.ListRows.Add (1)
    Apparemment ca permet d'ajouter une ligne mais j'ai pour cette ligne l'erreur : "Erreur définie par l'application ou par l'objet"

    Je pensais définir une variable et lui attribuer la position de la première cellule de la ligne ajoutée avec (selon une aide du forum) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DerLig = .[A65536].End(xlUp)(2).Row
    Avec juste ce dernier code et le reste permettant de remplir les cellules de la ligne ça marche (je remplis la dernière ligne). L'idée maintenant est de pouvoir rester dans l'objet tableau pour permettre les filtres (tableau dont je n'ai pas d'autre choix de l'utiliser).

    Merci de votre aide!

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    déjà, je te conseille de mettre ton ListObject sous variable, pour pas recopier tout le temps son chemin
    et ça te permet aussi de conserver la saisie intuitive dans ton code

    voici une petite boite à outils, pioche ce qui t'intéresse

    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
    Sub MonBeauTableau()
     
    Dim Tablo As ListObject
    Set Tablo = ActiveSheet.ListObjects("Tableau1")
     
    With Tablo
        ' ajout de ligne en fin de tableau
        .ListRows.Add
     
        ' écrire TOTO sur chaque cellule de la nouvelle ligne
        For j = 1 To .ListColumns.Count
            .Range(.ListRows.Count + 1, j) = "TOTO"
        Next j
     
        'sélectionner la cellule de la première colonne de la dernère ligne
        .Range(.ListRows.Count + 1, 1).Select
     
        ' tri ascendant de la colonne 1
        With .Sort
            .SortFields.Clear
            .SortFields.Add Tablo.ListColumns(1).Range, xlSortOnValues, xlAscending
            .Header = xlYes
            .MatchCase = True
            .Apply
        End With
    End With
     
    End Sub

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour

    ListRows.Add nécessite une table, pas un range à ma connaissance et Range("data_NometPrenom") retourne un range .... donc ça ne devrait pas pouvoir marcher

  4. #4
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Par défaut
    salut,

    J'ai testé ton code et j'obtiens l'erreur d'incompatibilité de type pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Tableau As ListObjects
    Set Tableau = ActiveSheet.ListObjects("Tableau1") 'erreur sur cette ligne
    Je comprends pas

    Merci

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    C'était un exemple basique

    tu dois adapter à ton ListObject

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tablo = Sheets("NomDeTaFeuille").ListObjects("NomDeTonTableau")

  6. #6
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Par défaut
    Re,
    c'est ce que j'ai fait le tableau s'appelle Tableau1 et la feuille est bien la feuille active dans le code.

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

Discussions similaires

  1. Manipulation des tableaux d'objets
    Par mesken dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/02/2014, 09h34
  2. manipulation des tableaux
    Par amine556 dans le forum Informix
    Réponses: 4
    Dernier message: 26/11/2007, 15h20
  3. Manipuler des TDateTime comme des entiers?
    Par toufou25 dans le forum C++Builder
    Réponses: 8
    Dernier message: 22/06/2006, 15h52
  4. Manipuler des listes d'objet ?
    Par xla99 dans le forum Général Python
    Réponses: 4
    Dernier message: 06/06/2006, 15h06
  5. delete[] seulement pour des tableaux d'objets?
    Par Crisanar dans le forum C++
    Réponses: 7
    Dernier message: 22/10/2005, 19h50

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