Bonjour
Cela va vous paraître certainement simple mais je cherche à créer une macro qui me supprime toutes les lignes contenant un mot dans une base de données?
Merci de votre aide
Gommme
Bonjour
Cela va vous paraître certainement simple mais je cherche à créer une macro qui me supprime toutes les lignes contenant un mot dans une base de données?
Merci de votre aide
Gommme
Bonjour
le mot en question se trouve dans quelle colonne?
ce mot fait partie du contenu des cellules en question ou bien en est LE contenu
il faut plus de précision.
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
Le mot se trouve dans la première colonne et EST le contenu de la colonne.
ligne 1 c'est la ligne des titres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub CommandButton1_Click() Dim Lastlig As Long Dim TonMot As String TonMot = "Toto" Application.ScreenUpdating = False With Sheets("Feuil1") .AutoFilterMode = False Lastlig = .Cells(Rows.Count, 1).End(xlUp).Row .Range("A1").AutoFilter field:=1, Criteria1:=TonMot If .Range("A1:A" & Lastlig).SpecialCells(xlCellTypeVisible).Count > 1 Then .Range("A2:A" & Lastlig).SpecialCells(xlCellTypeVisible).EntireRow.Delete .AutoFilterMode = False End With End Sub
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
Merci beaucoup
Cela fonctionne impeccable.
Si je veux rajouter un autre mot, je crée une autre variable et j'ajoute
Criteria1:=TonMot OR Criteria1:=AutreMot ?
F1 sur autofilter
Code : Sélectionner tout - Visualiser dans une fenêtre à part .Range("A1").AutoFilter field:=1, Criteria1:=TonMot, Operator:=xlOr, Criteria2:=AutreMot
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
J'ai créé un bouton avec la barre formulaire en lui affectant la macro que vous avez faite mais rien ne se fait quand je clique dessus ?
Quelle manipulation dois-je faire ?
Sinon puis je me permettre une autre question ?
Comment rajouter une colonne (première colonne) en y inscrivant le nom de la feuille sur chaque ligne (chaque feuille a un nome de ville que je veux rajouter à la première colonne de chaque ligne)
Le programme bloque, il filtre bien "Autre Mot" sans prendre "MonMot", et reste bloqué sur ce filtre sans supprimer de ligne.
J'avais testé avec un CommandButton
Tu mets la procédure dans un module standard, avec l'appellation choisie, par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Sub SupprMot() Dim Lastlig As Long Dim TonMot As String, SecondMot As String TonMot = "Toto" SecondMot = "Kuku" Application.ScreenUpdating = False With Sheets("Feuil1") .AutoFilterMode = False Lastlig = .Cells(Rows.Count, 1).End(xlUp).Row .Range("A1").AutoFilter field:=1, Criteria1:=TonMot, Operator:=xlOr, Criteria2:=SecondMot If .Range("A1:A" & Lastlig).SpecialCells(xlCellTypeVisible).Count > 1 Then _ .Range("A2:A" & Lastlig).SpecialCells(xlCellTypeVisible).EntireRow.Delete .AutoFilterMode = False End With End Sub
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
Désolée Mercatog
Ton programme fonctionne très bien c'est moi qui avait fait une erreur.
Merci beaucoup pour ton aide.
Pour ma précédente question, (rajouter une colonne avec le nom de la feuille), j'ai réussi à le faire :
Merci encore pour ton aide précieuse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub AjouterService() ' Dim Feuillet As String Feuillet = ActiveSheet.Name Range("A1").Select Selection.EntireColumn.Insert ActiveCell.FormulaR1C1 = "Service" Range("A2").Select Selection.CurrentRegion.Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = Feuillet Range("A1").Select End Sub
Evite les .Select
ci joint code qui boucle sur toutes les feuilles du classeur, si en A1 il n'y a pas le mot Service, il ajoute une colonne avec le nom de la feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Sub AjoutColonne() Dim sht As Worksheet Dim LastLig As Long Application.ScreenUpdating = False For Each sht In ThisWorkbook.Worksheets With sht LastLig = .Cells(Rows.Count, 1).End(xlUp).Row If LastLig > 1 Then If .Range("A1").Value <> "Service" Then .Columns(1).Insert .Range("A1").Value = "Service" .Range("A2:A" & LastLig).Value = .Name End If End If End With Next sht End Sub
Cordialement.
J'utilise toujours le point comme séparateur décimal dans mes tests.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager