Supprimer des colonnes en fonction d'un ou plusieurs mots

Bonjour à tous

après avoir importer des données sur la feuille "EBP" je souhaite la mettre en forme sur la feuille "TRAVAIL".

bouton de commande sur la feuille ANALYTIQUE

la fonction garder les titres de colonnes de la première ligne de "TRAVAIL" ne fonctionne pas.

Quelle est mon erreur?

Merci d'avance

Bien cordialement

24projet.xlsm (61.22 Ko)

Bonjour,

Je ne suis pas certain d'avoir bien compris ... mais à priori il manque un paramètre dans la fonction InStr.

image

Cdlt,

Cylfo

Bonjour,

Je crois que surtout il manque un POINT (.) avant cells, dans ce meme bout de code.

Vous avez Cells(1,i) qui réfère à la feuille active, ie. celle du bouton. Hors si je comprends bien vous avez mis un petit test1 juste qu dessus pour étudier la valeur… de ladite cellule mais de la feuille travail !

Correction à effectuer :

If InStr(Cible, .Cells(1, i) & "/") = 1 Then .Columns(i).Delete
' et non
If InStr(Cible, Cells(1, i) & "/") = 1 Then .Columns(i).Delete
' qui est en réalité
If InStr(Cible, ActiveSheet.Cells(1, i) & "/") = 1 Then .Columns(i).Delete

bien vu @saboh12617, dans INSTR j'étais persuadé qu'il fallait ou renseigner le paramètre début de recherche (ce que je fais systématiquement) ou éventuellement mettre une virgule pour bypasser le paramètre (ça plante, je viens de tester)

Merci à vous pour votre aide.

Si le problème est résolu n'oublie pas de clore le fil, merci.

Bonne journée

Bonjour ALAIN0449 , à tous ,

Pour le fun, j'ai pondu un code (pour ce que j'en ai compris) qui devrait aboutir au résultat souhaité.

Le code est commenté.

Conservant votre problème de titres:

  • Vous n'effacez pas les colonnes dont les titres sont vides.
  • La condition à prendre en compte est : If InStr(Cible, .Cells(1, i) & "/") = 0. Notez la comparaison avec 0 (absence) et non pas avec 1. Et vous n'avez pas mis de point devant Cells pour bien prendre la valeur de la feuille TRAVAIL.
  • Le titre de la colonne A comporte un "retour à la ligne" entre le mot "Compte" et le mot "général". Ce retour à la ligne n'est évidemment pas présent dans la variable cible. Donc si i correspond à la colonne A, alors If InStr(Cible, .Cells(1, i) & "/") = 0 sera vrai et on supprimera la colonne A. Le code proposé tient compte de cette particularité.

...

Rechercher des sujets similaires à "supprimer colonnes fonction mots"