Problème avec Excel [Résolu]

Signaler
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021
-
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
-
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

Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
1 671
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
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021

Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
1 671
Le miroir, c'est un début, il faudrait que tu postes le code VBA utilisé pour voir ce qui ne va pas.
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021

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.
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
1 671
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 ?
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021
>
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021

Oui elle était protégée.
Pb réglé merci bcp
Messages postés
16477
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
10 juin 2021
3 189
Bonjour

pour supprimer une ligne

ligne_a_supp = 15
Rows(ligne_a_supp).delete

principe à adapter à ta macro

Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021

Super ça marche en plus des autres conseils.
Merci bcp.
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
1 671 >
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021

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.
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.
Messages postés
11
Date d'inscription
jeudi 11 mars 2021
Statut
Membre
Dernière intervention
23 mars 2021

Ok merci du conseil.
En faisant le pas à pas j'ai trouvé merci.