Problème avec Excel

Résolu/Fermé
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021 - 11 mars 2021 à 10:02
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 12 mars 2021 à 09:35
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.
A voir également:

5 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 mars 2021 à 10:46
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
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021
11 mars 2021 à 10:51
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 mars 2021 à 11:18
Le miroir, c'est un début, il faudrait que tu postes le code VBA utilisé pour voir ce qui ne va pas.
0
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021
11 mars 2021 à 13:25
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
12 mars 2021 à 00:14
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
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 mars 2021 à 08:47
Oui elle était protégée.
Pb réglé merci bcp
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 12 mars 2021 à 08:39
Bonjour

pour supprimer une ligne

ligne_a_supp = 15
Rows(ligne_a_supp).delete

principe à adapter à ta macro

0
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021
12 mars 2021 à 08:49
Super ça marche en plus des autres conseils.
Merci bcp.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021
Modifié le 12 mars 2021 à 09:39
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Vbecker Messages postés 11 Date d'inscription jeudi 11 mars 2021 Statut Membre Dernière intervention 23 mars 2021
12 mars 2021 à 08:48
Ok merci du conseil.
En faisant le pas à pas j'ai trouvé merci.
0