VBA

Bonjour,

J'aimerai faire un tableau excel avec 3 colonnes en A, B et C.

J'aimerai faire une macro avec un bouton qui dit que lorsqu'on appuie sur le bouton, toutes les lignes du tableau dont le texte de la cellule en colonne A commence par une lettre soit supprimé ! SAUF la toute première ligne du tableau (même si la première ligne commence par une lettre, on ne le supprime pas!).

Merci!

Bonne soirée!

Bonsoir,

dhany

Bonjour jul997,

je te propose ce fichier Excel :

9exo-jul997.xlsm (15.28 Ko)

Ctrl e ➯ travail effectué !

[b]mais la prochaine fois, essaye de fournir un fichier exemple, pour qu'on n'aie pas à en inventer un de toute pièce !

et si t'écris ça sans dire où est situé ton tableau, j'vais pas pouvoir t'aider beaucoup plus !

Alt F11 pour voir le code VBA, puis revenir sur Excel

dhany

@jul997

comme tu es censée avoir lu la charte du forum au moins une fois, tu dois sûrement connaître ceci :

c3 titre trop vague c6 joindre un fichier titre du sujet

c'est pas tout à fait au point, hein ? je propose : « Suppression de lignes si lettre initiale, sauf 1ère ligne »

(bon, j'exagère à peine, vu qu'en informatique, ça va si vite que quelques mois c'est déjà une éternité ! )

dhany

Bonjour,

Une autre proposition à étudier.

Les données sont sous forme de tableau (structuré).

Cdlt.

5jul997.xlsm (24.99 Ko)
Public Sub Delete_rows()
'Raccourci clavier : Ctrl+m
Dim lo As ListObject, lCol As Integer, Cell As Range, rng As Range
    Set lo = ActiveSheet.ListObjects(1)
    If Not lo.InsertRowRange Is Nothing Then Exit Sub
    lCol = lo.ListColumns.Count
    For Each Cell In lo.ListColumns(1).DataBodyRange
        If Not IsNumeric(Left(Cell, 1)) Then
            If rng Is Nothing Then
                Set rng = Cell.Resize(, lCol)
            Else
                Set rng = Union(rng, Cell.Resize(, lCol))
            End If
        End If
    Next Cell
    If Not rng Is Nothing Then rng.Delete
End Sub

@Jean-Eric

j'ai essayé ton fichier, mais ta macro est pas tout à fait au point : y'a un bug !

dhany

Re,

@ dhany,

Attendons des informations complémentaires pour ce qui est de la première ligne et ce qu'il nomme tableau..

Cdlt.

oui, c'est bien ça, il s'agissait bien d'la 1ère ligne du tableau : t'as trouvé ! bravo Jean-Eric !

bref, jul997 a pas lésiné sur le côté minimaliste de son exo ! merci Julie ! ou Juliette ? oui, comme « Roméo et Juliette » !

dhany

Bonjour à tous,

Je sais que ce que j'écris n'est pas très claire et j'en suis désolé mais j'ai écris ça très vite à vrai dire ....

Je vous remercie pour vos réponses, c'est super et je vais regarder les fichiers que vous proposez! Je vous dirai si cela marche (je suis desole je n'ai pas trop eu le temps hier et avant hier) même si je sais déjà que ça sera bien....

Merci encore !

Dhany,

La première proposition est parfaite, c'est ce que je voulais mais serait t'il possible aussi de supprimer les lignes qui commentcent par ka ponctuation ? En plus de celles commençant par les lettres ? Merci !

Bonjour,

La mise à jour de la proposition initiale.

Merci d'avoir joint un fichier à ta demande.

Cdlt.

2jul997.xlsm (24.08 Ko)
Public Sub Delete_rows()
'Raccourci clavier : Ctrl+m
Dim rng As Range, I As Long
    With ActiveSheet.ListObjects(1)
        If Not .InsertRowRange Is Nothing Then Exit Sub
        For I = 2 To .ListRows.Count
            If Not IsNumeric(Left(.ListRows(I).Range.Cells(1, 1), 1)) Then
                If rng Is Nothing Then
                    Set rng = .ListRows(I).Range
                Else
                    Set rng = Union(rng, .ListRows(I).Range)
                End If
            End If
        Next I
    End With
    If Not rng Is Nothing Then rng.Delete
End Sub

Bonsoir jul997, Jean-Eric,

tu a écrit :

La première proposition est parfaite, c'est ce que je voulais

merci pour ton retour !


tu a écrit :

serait-il possible de supprimer aussi les lignes qui commencent par la ponctuation ? en plus de celles commençant par les lettres ?

oui, c'est tout à fait possible, et c'est fait dans cette nouvelle version :

5exo-jul997.xlsm (15.61 Ko)

Ctrl e ➯ travail effectué


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une autre adaptation.

merci de me dire si ça te convient.

dhany

Salut jul997, dhany, Jean-Eric,

dhany :Pourquoi tu n a pas utiliser seulement :

 If Not (.Value Like "#*") then

jul997 : Il n’est pas encore retard pour changer le titre de "Vba" a "créer un tableau et supprimer les linges selon condition"

Bonsoir AMIR,

pour tes lignes, est-ce que tu as pensé à les essorer avant d'les étendre pour le séchage ?

screen

(si tu aimes les anagrammes, tu as aussi « single » : c'est l'nouveau disque d'or des lignes Excel ! )

n'est-ce pas, jul997 ? je t'en avais même proposé un tout fait ! c'était :

« Suppression de lignes si lettre initiale, sauf 1ère ligne »

(relis mon post du 19/12 à 07:54)


@AMIR de nouveau (suite)

pour ta suggestion d'utiliser If Not (.Value Like "#*") then :

en laissant d'côté l'exception d'la 1ère ligne qui doit toujours être présente,

jul997 a écrit :

que toutes les lignes du tableau dont le texte de la cellule en colonne A commence par une lettre soient supprimées !

ça ne signifie pas forcément que les autres lignes commencent par un chiffre ! il y a d'autres caractères, comme les signes de ponctuation, et d'autres encore qui peuvent être des symboles plus ou moins ésotériques ; n'ayant pas d'fichier, ni aucune capture d'écran du genre de lignes utilisées par jul997, il vaut mieux rester prudent, et ne pas extrapoler inutilement.

« que la lumière soit ! », et la lumière fut : le vœu de jul997 a été exaucé ! (même sans fichier initial, ni capture d'écran)

dhany

Salut dhany

Alors je pense maintenant que les lignes sont sèche, je peux les enlever

ça ne signifie pas forcément que les autres lignes commencent par un chiffre ! il y a d'autres caractères, comme les signes de ponctuation, et d'autres encore qui peuvent être des symboles plus ou moins ésotériques ; n'ayant pas d'fichier, ni aucune capture d'écran du genre de lignes utilisées par jul997, il vaut mieux rester prudent, et ne pas extrapoler inutilement.

tu a raison, j’aurai faire la même chose

Merci beaucoup à tout le monde pour votre aide. J'ai ce qu'il me faut grâce à vos codes! Merci encore, je valide le sujet comme résolu.

Bonjour jul997,

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne fêtes de fin d'année !

dhany

re toutes et tous

j'ai bien aimé le passage au linge

allez hop! c'est dans la machine

en tout cas bravo vous êtes splendides !

bonne fête de fin d'année !

Rechercher des sujets similaires à "vba"