VBA
Fermé
souka
-
26 janv. 2011 à 11:52
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 janv. 2011 à 08:38
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 janv. 2011 à 08:38
4 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 26/01/2011 à 12:05
Modifié par pijaku le 26/01/2011 à 12:05
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) :
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 -
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
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
26 janv. 2011 à 13:20
26 janv. 2011 à 13:20
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
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
ç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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
26 janv. 2011 à 16:44
26 janv. 2011 à 16:44
tu as le signe : > ou pas?...
oui j'ai tout le temps ce signe.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 27/01/2011 à 08:38
Modifié par pijaku le 27/01/2011 à 08:38
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)
Et en cadeau : un super site, qui contient notamment manipuler une chaine de caractères en VB6 et VBA
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