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 :

Supprimer une ligne de tableau indépendant d'un autre sur une même feuille. [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut Supprimer une ligne de tableau indépendant d'un autre sur une même feuille.
    Bonjour forum.
    Pour supprimer une ligne de tableau, j'arrive à le faire en utilisant la récupération du numéro de ligne dans un textbox et le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     f.range("a"&textbox).EntireRow.Delete
    .
    Mais cette fois ci j'ai plusieurs tableaux et pour ne pas que l'application génère des erreurs de suppression j'ai dû créer plusieurs feuilles (15 feuilles) pour y mettre les tableaux.
    Je voudrais créer dans chaque feuille 4 tableaux.
    Je souhaiterais savoir si C'est possible avec mon code de supprimer uniquement que la ligne d'un tableau sans supprimer la ligne entière de la feuille ? Manuellement ça passe mais comment l'écrire en code? Donc supprimer une ligne d'un tableau indépendant d'un autre sur une même feuille.
    Merci bien .

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    Bonjour

    Si tu parles de tableaux structurés, il faut coder avec les propriétés du ListObjet pas de range et des row classiques

    Exemple à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.ListObjects("Nom du tableau").ListRows(textbox *1).Delete
    Chris
    PowerQuery existe depuis plus de 13 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é...

  3. #3
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Bonjour. Merci pour votre réponse. Le tableau structuré c'est le tableau créé en utilisant '' mise en forme de tableau"? Si c'est le cas c'est que je suis sur la voie.
    Maintenant que signifie ( *1) devant le textbox ? Est ce la première colonne ?

  4. #4
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Exemple à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.ListObjects("Nom du tableau").ListRows(textbox *1).Delete
    J'ai essayé d'adapter le code mais erreur : l'indice n'appartient pas à la sélection.

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    Re

    La mise en forme c'est juste la cerise sur le gateau !
    Voir https://fauconnier.developpez.com/tu...ux-structures/

    Textbox * 1 parce que les textbox contiennent du texte et qu'on veut un nombre.

    Les listRows commencent à 1 sous la ligne de titre, qu'elle soit en ligne 1 ou 100, donc adapter.

    Éventuellement joins une copie d'écran où on voit les numéro de lignes et plus d'infos sur ce que contient ta textBox
    Chris
    PowerQuery existe depuis plus de 13 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é...

  6. #6
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    PS: un problème de partage de connexion de mon Android à mon pc.
    Merci pour la réponse. Comme je l'ai mentionné ci dessus , impossible pour moi d'envoyer les fichiers via mon phone.
    Pour les lignes du tableau, j'utilise la formule Excel : =ligne()
    Donc ma première ligne aura le nombre 2.

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    Re

    NON !

    Relis ce que j'ai écrit : il faut raisonner en listObject, pas en ligne Excel
    Chris
    PowerQuery existe depuis plus de 13 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é...

  8. #8
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci infiniment. Mais je ne suis pas un crack pour le moment en VBA, suis désolé.
    J'ai essayé plusieurs démarches mais suis toujours bloqué.

  9. #9
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Le textbox contient le numéro de ligne du tableau que je récupère via une listbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim i as long
    I= textbox
    f.range("a"& i).entirerow.delete
    Voici comment j'utilise le textbox.

  10. #10
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    RE

    Décidément tu t'obstines !!

    Tu viens demander de l'aide pour éviter que toute la ligne se supprime : ce que fait entirerow

    Je t'explique qu'il faut te référer au tableau (ListObject) si tu ne veux supprimer que la ligne du tableau mais tu reviens à ton point de départ

    On ne sait pas comment tu manipules ta textbox puisque tu ne joins aucun code ou explication sur comment elle reçoit l'info, ni comment est placé ton tableau sur la feuille puisque tu ne joins pas non plus la copie d'écran demandé.
    Chris
    PowerQuery existe depuis plus de 13 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é...

  11. #11
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci à vous Chris.
    J'ai souligné que j'ai un problème de partage de connexion avec mon phone. En zone rurale c'est difficile d'avoir les wipocket donc difficile pour moi de faire une capture d'écran du pc. Je m'en excuse énormément.
    Mon tableau est structuré selon le modèle standard càd: les noms, prénoms,sexe,date, payée comme entête de liste juste en haut selon les colonnes (verticales)
    Dans la dernière colonne nommée ligne , j'ai inséré une formule d'excel pour pouvoir récupérer le numéro de ligne dans le textbox via la listbox sur l'userform. Pour modifier une donnée ou pour la supprimer, je clique d'abord dans la listbox qui rempli les textbox. Le numéro de ligne étant récupéré dans la textbox (T_ligne.value), facile maintenant de modifier selon la ligne dans laquelle se trouve l'élément à modifier.( C'est ce que je maîtrise le mieux pour modifier/supprimer à l'aide d'une listbox).
    Je ne maîtrise pas encore les rouages des tableaux.
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.listobjects("Tab_6e1").listrows(i*2).delete
    mais c'est la même chose.
    Erreur : l'indice n'appartient pas à la sélection.
    Merci d'être patient avec moi

  12. #12
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    RE

    Si tes titres sont en ligne 1 utilise Ligne()-1 dans ta formule ou bien i-1 dans ton code
    Chris
    PowerQuery existe depuis plus de 13 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é...

  13. #13
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci infiniment.
    Ça marche.

  14. #14
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci infiniment à toi Chris.
    Pour ceux qui voudraient passer par là voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("BD"). Listobjects ("Tab").Listrows(i -1). Delete
    .

  15. #15
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Bonjour forum. Je continue sur mon sujet.
    Le même code qui marchait sur la première feuille ne marche pas sur la deuxième feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim lig as long
    lig= T_ligne
    Set f =sheets ("Bilan")
    f.Listobjects("AOUT"). Listrows (lig - 1).Delete
    Mais à la suppression de l'élément, une erreur 9 s'affiche : l'indice n'appartient pas à la sélection et le code est surligné en jaune. Lorsque je mets le curseur sur la variable lig, il est marqué 24 et sur le textbox "24".
    J'ai copié/collé l'ancien code pour ne pas me tromper sur une écriture mais toujours pareil. J'ai vérifié les griffes de la feuille ("Bilan") et du tableau ("AOUT")mais toujours pareil. Je ne comprends rien. Merci de m'aider.

  16. #16
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    Re

    Le tableau Aout commence en ligne 1 ?
    Tu veux supprimer quelle ligne ?
    Chris
    PowerQuery existe depuis plus de 13 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é...

  17. #17
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci bien.
    Le tableau AOUT commence en ligne 20 comme entête de liste. Et le contenu commence en ligne 21

  18. #18
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    J'ai trouvé. J'ai fait et ça marche. Merci. J'ai relu ton premier message et j'ai vu mon erreur.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/09/2019, 00h42
  2. [XL-2016] copier coller une plage de données d'une colonne à une autre sur la même feuille
    Par Nabilbennalla dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/03/2019, 16h21
  3. Supprimer des lignes d’un tableau Excel avec une limite
    Par PASCAL9210 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/12/2018, 12h05
  4. Déplacer ligne de tableau sans écraser les autres
    Par kalitous dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2012, 19h36
  5. Réponses: 2
    Dernier message: 14/04/2011, 12h00

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