Macro qui supprime des lignes qui ne contienne pas un nombre
melvinou22
Messages postés
129
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
J'ai un tableau excel qui ressemble a sa :

Comme vous pouvez le voir il y a des date et des nombres qui sont des température
sauf que toute les dates ne sont pas aligner et les température non plus
et la vous voyer 20 ligne mais il y en a 9000 en dessous
J'aimerai donc faire une macro qui regarde dans la colonne A et si la valeur est une température (donc si la valeur se trouve entre 10 et 40) Alors il supprime la ligne.
Cela devrai donner un résultat comme sa :

ou sinon mais c'est un peut plus compliquer il serait bien que la macro échange les deux cases
cela serais mieux car sa m’éviterai de perdre des valeurs
Mon problème est que je ne sais absolument pas comment faire.
Si quelqu'un peut m'aider merci Beaucoup.
J'ai un tableau excel qui ressemble a sa :

Comme vous pouvez le voir il y a des date et des nombres qui sont des température
sauf que toute les dates ne sont pas aligner et les température non plus
et la vous voyer 20 ligne mais il y en a 9000 en dessous
J'aimerai donc faire une macro qui regarde dans la colonne A et si la valeur est une température (donc si la valeur se trouve entre 10 et 40) Alors il supprime la ligne.
Cela devrai donner un résultat comme sa :

ou sinon mais c'est un peut plus compliquer il serait bien que la macro échange les deux cases
cela serais mieux car sa m’éviterai de perdre des valeurs
Mon problème est que je ne sais absolument pas comment faire.
Si quelqu'un peut m'aider merci Beaucoup.
Configuration: Windows 10 :p
A voir également:
- Macro qui supprime des lignes qui ne contienne pas un nombre
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment supprimer un fichier qui refuse d'être supprimé - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Message supprimé whatsapp - Guide
- Partager des photos en ligne - Guide
1 réponse
Bonjour,
Faire Alt F11 pour accéder à l'éditeur, insérer un module et mettre ce code:
il ne reste plus qu'à lancer la macro
Faire Alt F11 pour accéder à l'éditeur, insérer un module et mettre ce code:
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Set FL1 = Worksheets("Feuil1") 'a adapter
NoCol = 1 'lecture de la colonne 1
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If Len(Var) < 6 Then
FL1.Cells(NoLig, NoCol + 2) = Var
FL1.Cells(NoLig, NoCol) = FL1.Cells(NoLig, NoCol + 1)
FL1.Cells(NoLig, NoCol + 1) = FL1.Cells(NoLig, NoCol + 2)
FL1.Cells(NoLig, NoCol + 2) = ""
FL1.Cells(NoLig, NoCol).NumberFormat = "m/d/yyyy" ' adapter le format
End If
Next
Set FL1 = Nothing
End Sub
il ne reste plus qu'à lancer la macro
Mais j'ai un autre problème
J'ai voulu ammeliorer le programme en rajoutant a la fin le fait de transformer toute la colonne B en Nombre Car pour les cases qui etait anciennement des dates il m'ecrit une date de 1900 et quand je selectionne a la main la colonne et que je change le format en "Nombre" il me remet correctement ma temperature mais quand je le fait avec la macro en rajoutant sa a la fin
Columns("B:B").SelectSelection.NumberFormat = "0.00"
et bien il ecrit bien ma temperature mais a gauche de la colonne avec écrit en erreur : " Nombre sous forme de texte"
comment je peut faire pour qu'il me le mette sous forme de nombre
Voilà
@+
Columns("B:B").SelectSelection.NumberFormat = "0.00"
Mais quand j'ai enregistrer la macro sa a fonctionner et quand c'est la macro qui le fait sa ne marche pas
Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1") 'a adapter NoCol = 1 'lecture de la colonne 1 For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Len(Var) < 6 Then FL1.Cells(NoLig, NoCol + 2) = Var FL1.Cells(NoLig, NoCol) = FL1.Cells(NoLig, NoCol + 1) FL1.Cells(NoLig, NoCol + 1) = FL1.Cells(NoLig, NoCol + 2) FL1.Cells(NoLig, NoCol + 2) = "" FL1.Cells(NoLig, NoCol).NumberFormat = "dd/mm/yyyy hh:mm" FL1.Cells(NoLig, NoCol + 1).NumberFormat = "0.00" End If Next Set FL1 = Nothing End SubVoilà c'est tout simple!
@+