Déplacement sélectif de cellules
Bonjour à tous et toutes
Voici ce que je recherche
J'ai une cellule (B1) avec un texte "blabla" que l'on peut retrouver x fois dans la colonne B.
Je voudrais que la cellule à côté (C1) soit copiée puis collée dans la colonne A
jusqu'à la dernière ligne avant la prochaine cellule en B contenant le texte "blabla".
(exemple: le prochain "blabla" est en B16, il faut que le copié/collé précédent se fasse jusqu'en A15).
Ce cycle de recherche de la cellule "blabla" et de copié/collé de la cellule d'à côté devra s'effectuer jusqu'à la dernière cellule "blabla" de la colonne B et dans ce cas le copié/collé s'arrêtera à la dernière cellule non vide en B.
Une fois fait il faudra supprimer toutes les lignes contenant un texte spécifique "toto".
Merci d'avance pour toute aide
Bonne soirée
déplacement sélectif des cellules
bonjour,
toto est certainement colonne B. Dans ce cas :
Code:
1 2 3 4 5 6 7 8 9 10
|
Sub blabla()
derl = Cells(65000, 2).End(xlUp).Row
For i = derl To 1 Step -1 ' boucle en remontant des lors qu'il y a suppression possible
If Cells(i, 2) <> "blabla" Then
Cells(i, 1) = Cells(i, 3)
End If
If Cells(i, 2) = "toto" Then Cells(i, 2).EntireRow.Delete
Next i
End Sub |
cordialement
C'est bon chez moi, à insérer dans le module de la feuille :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub Demo()
Dim Deb As Range, Fin As Range
If Me.[C1].Value = "" Then Beep: Exit Sub
Application.ScreenUpdating = False
Set Deb = Me.[B1]
With Deb.CurrentRegion.Columns(1)
Set Fin = .Find(Deb.Value, , xlValues, xlWhole, , , True)
Do Until Fin.Address = Deb.Address
Range(Deb(3, 0), Fin(0, 0)).Value = Deb(, 2).Value
Deb.Resize(2).EntireRow.Delete
Set Deb = Fin
Set Fin = .FindNext(Fin)
Loop
Range(Deb(3, 0), .Cells(.Rows.Count)(1, 0)).Value = Deb(, 2).Value
Deb.Resize(2).EntireRow.Delete
End With
Set Deb = Nothing: Set Fin = Nothing
Application.ScreenUpdating = True
End Sub |
__________________________________________________________________________________________
Merci de cliquer sur :plusser: pour chaque message ayant aidé puis sur :resolu: pour clore cette discussion …
__________________________________________________________________________________________
Question bien formulée, solution assurée ! (Robert Durupt)