A voir également:
- Visual Basic - Suppression ligne si texte
- Visual basic - Télécharger - Langages
- Forcer suppression fichier - Guide
- Microsoft 365 basic - Guide
- Excel cellule couleur si condition texte - Guide
- Microsoft visual c++ runtime - Guide
9 réponses
redonky
Messages postés
102
Date d'inscription
jeudi 2 avril 2009
Statut
Membre
Dernière intervention
31 octobre 2010
23
5 avril 2009 à 02:10
5 avril 2009 à 02:10
voila;)
cell(X,"b").Select
Selection.EntireRow.Delete
cell(X,"b").Select
Selection.EntireRow.Delete
oui d'accord mais mon classeur possede une centaine de lignes. et je ne dois garder QUE les lignes qui ont des chiffres dans la colonne B. comment faire la différence entre une cellule avec des chiffres et une cellule avec des lettres ?
redonky
Messages postés
102
Date d'inscription
jeudi 2 avril 2009
Statut
Membre
Dernière intervention
31 octobre 2010
23
9 avril 2009 à 14:03
9 avril 2009 à 14:03
Il y a une commande pour savoir ce qu'il y a dans la cellule, mais je ne la connait plus:s
Mike-31
Messages postés
18337
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 septembre 2024
5 099
9 avril 2009 à 20:43
9 avril 2009 à 20:43
Salut,
Pas très clair comme explication, occupons nous que de la colonne B.
Quel type de saisie trouve t on dans cette colonne et sur quel critère devons nous supprimer la ligne.
Tu parles de numéro de ligne, c’est un numéro en colonne A par exemple ou le numéro d’index de ligne.
Le mieux est de monter un fichier exemple avec des annotations, dans cette cellule j’ai ça je je souhaiterai obtenir ça etc ...
Pour joindre ton exemple avec ce lien
https://www.cjoint.com/
A+
Pas très clair comme explication, occupons nous que de la colonne B.
Quel type de saisie trouve t on dans cette colonne et sur quel critère devons nous supprimer la ligne.
Tu parles de numéro de ligne, c’est un numéro en colonne A par exemple ou le numéro d’index de ligne.
Le mieux est de monter un fichier exemple avec des annotations, dans cette cellule j’ai ça je je souhaiterai obtenir ça etc ...
Pour joindre ton exemple avec ce lien
https://www.cjoint.com/
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ah pardon j'avais meme pas vu que la mise en page avait foiré
en fait dans les cellules B j'ai ce type de contenu
FUITE CREMAILLERE DIRECTION
OU
44575 / JEU PEDALE ACCELERATEUR
et je veux garder que les lignes ou il y a les 5 chiffres devant et supprimer toutes les autres
pour ca j'ai décidé d'extraire les 5 premiers caracteres dans une colonne pour obtenir:
FUITE
OU
44575
et donc la la ligne contenant 44574 je veux la garder et l'autre je veux la supprimer
c'est plus clair ? merci a vous de prendre du temps en cette soirée de UEFA'cup (en meme temps le match est pas top palpitant)
en fait dans les cellules B j'ai ce type de contenu
FUITE CREMAILLERE DIRECTION
OU
44575 / JEU PEDALE ACCELERATEUR
et je veux garder que les lignes ou il y a les 5 chiffres devant et supprimer toutes les autres
pour ca j'ai décidé d'extraire les 5 premiers caracteres dans une colonne pour obtenir:
FUITE
OU
44575
et donc la la ligne contenant 44574 je veux la garder et l'autre je veux la supprimer
c'est plus clair ? merci a vous de prendre du temps en cette soirée de UEFA'cup (en meme temps le match est pas top palpitant)
Mike-31
Messages postés
18337
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 septembre 2024
5 099
10 avril 2009 à 10:19
10 avril 2009 à 10:19
Salut,
En supposant que tes reférences (44578 / JEU PEDALE ACCELERATEUR) sont colonne B
En colonne C pose cette formule en C2 et incrémente vers le bas =--(ESTNUM((GAUCHE(B2;5)*1)))
Dans un module macro colles ce code que tu associes à un bouton pour déclencher la macro
Sub test()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim LigFin As Long
Col = "C"
LigFin = Range("B65536").End(xlUp).Row + 1
With Sheets("Feuil3")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = 0 Then
.Cells(Lig, Col).EntireRow.Delete
End If
Next
End With
Application.CutCopyMode = False
MsgBox ("Références texte supprimées")
End Sub
Si c'est ce que tu attends, on insérera la création de la formule dans le code et voir un code plus épuré
A+
En supposant que tes reférences (44578 / JEU PEDALE ACCELERATEUR) sont colonne B
En colonne C pose cette formule en C2 et incrémente vers le bas =--(ESTNUM((GAUCHE(B2;5)*1)))
Dans un module macro colles ce code que tu associes à un bouton pour déclencher la macro
Sub test()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim LigFin As Long
Col = "C"
LigFin = Range("B65536").End(xlUp).Row + 1
With Sheets("Feuil3")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = 0 Then
.Cells(Lig, Col).EntireRow.Delete
End If
Next
End With
Application.CutCopyMode = False
MsgBox ("Références texte supprimées")
End Sub
Si c'est ce que tu attends, on insérera la création de la formule dans le code et voir un code plus épuré
A+
exactement ce que je cherchais pour la fonction ESTNUM
je vais l'integrer et je mettrais le code de la macro ici
merci
je vais l'integrer et je mettrais le code de la macro ici
merci
Mike-31
Messages postés
18337
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 septembre 2024
5 099
12 avril 2009 à 10:38
12 avril 2009 à 10:38
Salut,
Sans saisir de formule colonne C, elle est intégrée dans le code macro, donc tout automatique, colles ce code dans un module que tu associes à un bouton, si ça te va, on créera plus tard un commandbutton avec le code intégré
Sub test()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim LigFin As Long
'crée la formule en C2 et incrémente de C2 à C50
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<>"""",--(ISNUMBER((LEFT(RC[-1],5)*1))),"""")"
Selection.AutoFill Destination:=Range("C2:C50"), Type:=xlFillDefault
Col = "C"
LigFin = Range("B65536").End(xlUp).Row + 1
With ActiveSheet ' ou Sheets("Feuil3")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = 0 Then
.Cells(Lig, Col).EntireRow.Delete
End If
Next
End With
'Supprime les formules crées
Range("C2:C50").ClearContents
MsgBox ("Il n'y a plus de références texte")
End Sub
A+
Sans saisir de formule colonne C, elle est intégrée dans le code macro, donc tout automatique, colles ce code dans un module que tu associes à un bouton, si ça te va, on créera plus tard un commandbutton avec le code intégré
Sub test()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim LigFin As Long
'crée la formule en C2 et incrémente de C2 à C50
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<>"""",--(ISNUMBER((LEFT(RC[-1],5)*1))),"""")"
Selection.AutoFill Destination:=Range("C2:C50"), Type:=xlFillDefault
Col = "C"
LigFin = Range("B65536").End(xlUp).Row + 1
With ActiveSheet ' ou Sheets("Feuil3")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = 0 Then
.Cells(Lig, Col).EntireRow.Delete
End If
Next
End With
'Supprime les formules crées
Range("C2:C50").ClearContents
MsgBox ("Il n'y a plus de références texte")
End Sub
A+
voila mon code final:
'SUPPRESSION LIGNE SANS SIGNALEMENT
For h = 2 To f - 1 Step 1
Cells(h, 15).Select
ActiveCell.FormulaR1C1 = "=--(isnumber((left(RC[-13],5)*1)))"
Next h
Dim w As Integer
w = 2
Do
If Cells(w, 15) <> 1 Then
Range(w & ":" & w).Delete shift:=xlUp
w = w - 1
End If
w = w + 1
Loop Until Cells(w, 1) = Empty
c'est peut etre pas otpimisé mais ca marche. merci a beaucoup pour l'aide
'SUPPRESSION LIGNE SANS SIGNALEMENT
For h = 2 To f - 1 Step 1
Cells(h, 15).Select
ActiveCell.FormulaR1C1 = "=--(isnumber((left(RC[-13],5)*1)))"
Next h
Dim w As Integer
w = 2
Do
If Cells(w, 15) <> 1 Then
Range(w & ":" & w).Delete shift:=xlUp
w = w - 1
End If
w = w + 1
Loop Until Cells(w, 1) = Empty
c'est peut etre pas otpimisé mais ca marche. merci a beaucoup pour l'aide