Problème macro

Bonjour à tous et à toutes,

Je viens de me commencer à apprendre le langage VBA, et dire que je suis néophyte serait un euphémisme. Je cherche à créer une macro qui me permettrait de supprimer certaines colonnes. Je voudrais sélectionner certaines colonnes de on fichier par leur nom dans la première ligne, dans le but de supprimer les lignes inutiles. En faisant mes recherches, j'ai vu que la fonction "autofilter" pourrait m'être utile mais je ne comprends pas comment l'intégrer dans ma macro.

Merci d'avance,

fxls

Bonjour fxlsvba et bienvenue dans le merveilleux monde de la VBA !

Avec le code ci-dessous, tu recherche le mot que tu veux sur ta ligne 1 et tu supprime la colonne retournée (remplacer "Test" par le mot recherché) :

Sub Recherche_Supprime()
Dim x As Range
Set x = Rows(1).Find(What:="Test")
Columns(x.Column).Delete
End Sub

Restant à ta dispo si tu a des questions !

Bonjour,

Une piste :

Sub Test()

    Dim Plage As Range
    Dim I As Integer
    Dim Nom As String

    Nom = "Nom de ta colonne"

    'défini la plage sur la ligne 1 de la feuille active
    With ActiveSheet: Set Plage = .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)): End With

    'parcours la plage de la droite vers la gauche et supprime la colonne dont la cellule en ligne 1 contient le nom
    For I = Plage.Count To 1 Step -1

        If Plage(I).Value = Nom Then Plage(I).EntireColumn.Delete

    Next I

End Sub

Merci pour vos réponses si rapides! En relisant mon message je viens de me rendre compte de l'ambiguïté de ma demande. J'ai un fichier lourd composé de multiples colonnes (une vingtaine) mais je n'en ai besoin que de quelques unes. Ainsi les colonnes inutiles prennent de la place et rendent le travail plus long et fastidieux. Mon but est de rechercher les colonnes dont j'ai besoin, leur nom est en première ligne et les données suivent (certaines sont des nombres tandis que d'autres sont des mots); et supprimer les colonnes qui me sont inutiles. Je mettrai ensuite les colonnes restantes dans un tableau ainsi:

ActiveSheet.ListObjects.Add(xlSrcRange, Range("$x:$y"), , xlYes).Name = _

"Tableau f.e.c num 1"

Merci infinment,

fxls

Et comment tu fais pour dire les colonnes qui t’intéresse ou non ?

J'ai un fichier lourd composé de multiples colonnes (une vingtaine) mais je n'en ai besoin que de quelques unes.

Mais un "clic droit" + "supprimer" sur les colonnes inutiles ne serait pas suffisant :p ?

Je connais les colonnes qui m'intéressent pour ma tâche, d'autres sont inutiles. Mon but pour cette macro est justement de rien avoir à faire manuellement...

D'accord d'accord,

Je connais les colonnes qui m'intéressent pour ma tâche, d'autres sont inutiles.

Mais comment tu fais pour dire quelles sont les colonnes qui t’intéresse, et quelles sont les colonnes qui te sont inutiles ?

Une liste de nom de colonne ? Une saisie dans un MsgBox/InputBox ? Une sélection ? Un nom dans l'en-tête de colonne ? Le numéro de colonne ?

Parce que va falloir renseigner à la macro quelles sont les colonnes à supprimer

J'ai déjà la liste de nom de colonnes dont j'ai besoin, je pourrai insérer une colonne contenant le nom des colonnes intéressantes (excuses-moi pour la redondance), de plus le nom des colonnes est renseigné dans la première ligne du fichier;

merci pour le temps que tu me consacres,

fxls

Re-

J'ai déjà la liste de nom de colonnes dont j'ai besoin, je pourrai insérer une colonne contenant le nom des colonnes intéressantes

Alors partons du principe que tu a une colonne qui fait référence aux noms des colonnes que tu souhaite conserver ou supprimer

Je t'ai fais un fichier test pour que tu vois le genre de chose que l'on peut faire

Tu clique sur le bouton, et tu choisi si tu veux conserver ou supprimer la liste de nom se trouvant en colonne A du tableau à droite

Restant à ta dispo!

13pour-fxlsvba.xlsm (24.33 Ko)

WOUAHH!!!! MERCI INFINIMENT POUR TON AIDE!!!

Ravie que sa te convienne

N'hésite pas à revenir vers nous si tu a des questions, ou des modifications à apporter !

Rechercher des sujets similaires à "probleme macro"