Je me demande si quelqu'un pourrait m'aider s'il vous plaît. Pour que je puisse maintenir une «plage d'entrée» donnée, j'essaye de mettre en place un script qui supprime le contenu des cellules de la ou des lignes sélectionnées par l'utilisateur. Puis déplacez toutes les lignes avec des données en haut de ma feuille de calcul si la colonne "A" à partir de la ligne 7 est remplie.Shift lignes contenant des données vers le haut
J'ai rassemblé le code ci-dessous qui supprime le contenu de la cellule de la ligne, mais je ne parviens pas à déplacer le 'Shift Up' les lignes contenant des données pour s'asseoir les unes sous les autres, en omettant les lignes vides entre les données.
Sub DelRow()
Dim msg
Sheets("Input").Protect "password", UserInterFaceOnly:=True
Application.EnableCancelKey = xlDisabled
Application.EnableEvents = False
msg = MsgBox("Are you sure you want to delete this row?", vbYesNo)
If msg = vbNo Then Exit Sub
With Selection
Application.Intersect(.Parent.Range("A:R"), .EntireRow).Interior.ColorIndex = xlNone
Application.Intersect(.Parent.Range("S:AD"), .EntireRow).Interior.ColorIndex = 37
Application.Intersect(.Parent.Range("AF:AQ"), .EntireRow).Interior.ColorIndex = 42
Selection.SpecialCells(xlCellTypeConstants).ClearContents
End With
Application.EnableEvents = True
End Sub
Je l'ai mis en place un « Trier » macro illustré ci-dessous, et bien que cela fonctionne avec deux lignes consécutives contenant des données, il ne fonctionne pas pour les lignes que j'ai utilisé mon « Supprimer » macro. Par exemple, si je remplis la première et la deuxième ligne de ma «plage d'entrée», le code trie correctement la feuille de calcul en utilisant la colonne «B» comme critère de tri. Mais si je supprime le contenu de la première ligne, créant ainsi une ligne vide, le script 'Sort' ne déplace pas la deuxième ligne.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableCancelKey = xlDisabled
With Sheets("Input")
If .Range("A7").Value = "" Then Exit Sub
.Range("B7:AS400").Sort Key1:=Range("$B$1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DatOption1:=xlSortNormal
End With
End Sub
Je me demandais simplement si quelqu'un pourrait peut-être jeter un oeil à cette s'il vous plaît et donner des indications sur la façon dont je dois adapter mon code afin que je puisse ajouter la fonctionnalité de tri.
Un grand merci et salutations
Après avoir répondu à votre question, puis relire votre question ... vous en train d'essayer de supprimer la ligne entière, ou seulement une partie? –
Bonjour @Daniel Cook, merci d'avoir pris le temps de répondre à mon message. Je ne supprime pas les lignes parce que j'ai besoin de la 'plage d'entrée' pour rester non cochée, donc je supprime le contenu de la cellule à la place. Beaucoup de mercis et de bonnes salutations – IRHM