VBA
souka
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Novice VBA, j'ai une petite requête à faire:
Sur ma colonne J
Si cellule = Toto et si la cellule precedente est vide alors je remonte la cellule.
Je sais pas si je suis clair
Merci
Novice VBA, j'ai une petite requête à faire:
Sur ma colonne J
Si cellule = Toto et si la cellule precedente est vide alors je remonte la cellule.
Je sais pas si je suis clair
Merci
4 réponses
-
Bonjour,
1- Attention avec les codes qui utilisent "delete"... Venant d'un forum, on ne sait pas trop le résultat obtenu.
2- Si vous me faites confiance malgré tout, travaillez d'abord sur une copie de votre fichier. Pour cela, ouvrez le, Fichier/Enregistrer sous, appelez le "test_toto.xls" et enregistrez. Travailler toujours sur une copie AVANT. Ben oui, après c'est trop tard...
3- Essayez ce code (à placer dans un module standard) :Sub Supprime_si_prec_vide() Dim Lig As Long, DernierLig As Long DernierLig = Sheets("Feuil1").Range("J65536").End(xlUp).Row For Lig = 2 To DernierLig If Cells(Lig, 10).Value = "toto" And Cells(Lig - 1, 10).Value = "" Then Cells(Lig - 1, 10).Delete Shift:=xlUp 'pour supprimer toute la ligne faire : 'Cells(Lig - 1, 10).EntireRow.Delete End If Next End Sub
Sheets("Feuil1") à adapter en remplaçant Feuil1 par le nom de la feuille concernée.
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges - -
Merci pijaku,
j'ai 2 petits pb avec ce code:
- La feuille concernée ne porte jamais le même nom, donc je peux pas la renomée de manière fixe.
- La cellule Toto remonte bien mais le problème est que tout les reste de la colonne est remonter aussi, or je voudrais remonte que la cellule contenant Toto sans que le reste en bas bouge...
Merci pour ton aide-
Yes!!!
Alors essaye ce code qui devrait résoudre tes 2 problèmes. Toujours sur une copie de ton fichier!!!!!!!!
Sub remonte_d_une_ligne_si_toto()
Dim Lig As Long, DernierLig As Long
DernierLig = ActiveSheet.Range("J65536").End(xlUp).Row
For Lig = 2 To DernierLig
If Cells(Lig, 10).Value = "toto" And Cells(Lig - 1, 10).Value = "" Then
Cells(Lig - 1, 10).Value = Cells(Lig, 10).Value
Cells(Lig, 10).Value = ""
End If
Next
End Sub
-
-
Super!!!
ça marche!!! merci Bcp
J'ai encore une dernière requête please...
Colonne A
toto > riri
toto1 > fifi
toto2 > loulou
je voudrais supprimer à chaque fois .....> et laisser que
riri
fifi
loulou
Merci -
-
Salut,
Si tu as un espace après le > alors ne touche à rien, ce code est bon. Par contre, si tu n'as pas d'espace, retire le - 1 dans la ligne :
Cells(Lig, 1).Value = Right(Cells(Lig, 1).Value, Len(Cells(Lig, 1).Value) - InStr(Cells(Lig, 1).Value, ">") - 1)
Sub Riri_fifi_loulou() Dim Lig As Long, DernierLig As Long DernierLig = ActiveSheet.Range("A65536").End(xlUp).Row For Lig = 2 To DernierLig If InStr(Cells(Lig, 1).Value, ">") <> 0 Then Cells(Lig, 1).Value = Right(Cells(Lig, 1).Value, Len(Cells(Lig, 1).Value) - InStr(Cells(Lig, 1).Value, ">") - 1) End If Next End Sub
Et en cadeau : un super site, qui contient notamment manipuler une chaine de caractères en VB6 et VBA
-