Problème avec Excel

Résolu
Vbecker Messages postés 11 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai le tableau et j'aimerai le modifier à l'aide de macros. Les modifications consistent à supprimer certaines colonnes et lignes.

Pour les colonnes je suis bon.

En revanche, pour les lignes je n'arrive pas supprimer celle que je veux sans supprimer l'entête. J'ai l'impression qu'elles sont liées un un lien type arborescence et je ne sais pas comment l'enlever.

Si vous pouvez m'aider je serai vraiment content.

En espérant que j'ai été assez clair.

5 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Essaies de mettre un grand miroir face à ton écran pour qu'on puisse voir à quoi ressemble ton fichier.

    Si tu n'as pas de miroir, déposes un fichier avec des commentaires
    sur https://www.cjoint.com/ ou sur https://mon-partage.fr/
    et mets le lien obtenu dans ton prochain message.

    Tuto : Comment utiliser C.joint.fr
    0
  2. Vbecker Messages postés 11 Statut Membre
     
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Le miroir, c'est un début, il faudrait que tu postes le code VBA utilisé pour voir ce qui ne va pas.
      0
  3. Vbecker Messages postés 11 Statut Membre
     
    Voici le code.

    'Procédure de suppression de ligne

    Sub SuppressionL()

    'définition des variables
    Dim c As Worksheet

    Dim ligne_a_supp As Long

    'identifier la feuille
    Set c = Worksheets("Sheet1")

    'identifier colonne à supprimer + ordre de suppression
    ligne_a_supp = 15

    c.Cells(ligne_a_supp, 1).EntireRow.Delete

    End Sub

    C'est que le début de ce que je compte faire. Mais déjà je ne comprends pourquoi Excel m'indique une erreur sur le ligne c.Cells(ligne_a_supp, 1).EntireRow.Delete.
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Cette macro devrait fonctionner, mais ...

      « je ne comprends pourquoi Excel m'indique une erreur » Quel est le message d'erreur ?

      La feuille est-t'elle protégée ?
      N'y aurait-t'il pas plusieurs tableaux cote à cote ?
      0
      1. Vbecker Messages postés 11 Statut Membre > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Oui elle était protégée.
        Pb réglé merci bcp
        0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    pour supprimer une ligne

    ligne_a_supp = 15
    Rows(ligne_a_supp).delete

    principe à adapter à ta macro

    0
    1. Vbecker Messages postés 11 Statut Membre
       
      Super ça marche en plus des autres conseils.
      Merci bcp.
      0
      1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > Vbecker Messages postés 11 Statut Membre
         
        Il est préférable de prendre la bonne habitude de préciser le parent (la feuille) du range (du Rows) soit :
        Set c = Worksheets("Sheet1")
        ligne_a_supp = 15
        c.Rows(ligne_a_supp).Delete

        Pourquoi ?
        - Car en absence de parentalité, la commande s'applique sur le parent actif (ici la feuille active) qui n'est pas toujours celle sur laquelle on veut agir.
        - Cela évite d'utiliser .Select qui est inutile, très chronophage et source d'erreurs.
        - De plus il ne faut pas oublier que tu travailles dans un environnement multitâche et qu'une autre tache peut changer la feuille active, ce qui dans ce cas aurait pour conséquence de supprimer une ligne sur une autre feuille.
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Tessel75
     
    Bonsoir,
    Essaie de faire un pas à pas du déroulement de ton bout de code, et regarde la valeur qu'il prend pour chacune de variables, et voir pourquoi il accroche sur cette commande.
    Sinon, tu te branches sur "Enregistrer Macro", tu exécutes à la main les différents ordres que tu veux voir exécuter par ta macro, et une fois l'enregistrement fini, tu regardes comment lui, écrit le code. Perso, je n'ai jamais appris le VBA ni écrit une ligne de code directement, j'ai toujours procéder comme ça. Et à la fin, je faisais le ménage de tout ce qui n'était pas utile à la bonne marche de la macro.
    -1
    1. Vbecker Messages postés 11 Statut Membre
       
      Ok merci du conseil.
      En faisant le pas à pas j'ai trouvé merci.
      0