Enregistrer "tab droit" dans une macro

Bonjour,

J'ai enregistré une macro à partir d'une ligne par exemple A9 puis j'ai fait "suppr" puis j'ai fait "tab droit" puis "suppr" puis à nouveau 2 fois "tab droit" puis "suppr.

Je me suis placé sur une autre ligne et exécuter cette macro= cela ne marche pas puisque la macro a enregistré =

A9 suppr puis A9 suppr etc...cf exemple joint

Mon souci = comment enregistrer le mouvement vers la droite en macro sans que celle-ci enregistre la référence de la cellule pour que je puisse appliquer cette macro sur n'importe quelle ligne.

Je joins un tableur

Cordialement

Tonthon

Bonjour,

Tu peux utiliser les numéros de lignes et de colonnes de la cellule de départ puis ajouter 1 ou un autre chiffre pour ajuster le mouvement.

La macro donne ceci :

Sub Suppression()

Dim Ligne, Colonne As Integer

Ligne = Selection.Row

Colonne = Selection.Column

Cells(Ligne, Colonne).ClearContents

Cells(Ligne, Colonne + 1).ClearContents

Cells(Ligne, Colonne + 2).ClearContents

End Sub

Bonjour

Il faut te servir de la cellule active pour trouver où tu te situes

Essayes

Sub Suppression()
' Supprime les colonnes A B C E et H de la ligne active
' Touche de raccourci du clavier: Ctrl+Maj+S

  Range("A" & ActiveCell.Row).Resize(1, 3).ClearContents
  Range("E" & ActiveCell.Row).ClearContents
  Range("H" & ActiveCell.Row).ClearContents
  Range("A3:H" & Range("D" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Re

J'essaie vos solutions dès que possible....peut-être pas avant vendredi mais je reviendrai ici pour vous dire ce qu'il en est.

A vue de nez, cela semble bien correspondre à ce que je recherche.

Cordialement

Tonthon

Bonjour,

Je suis confus, j'ai pris la dernière solution et c'est ok....il n'y a pas de raison que l'autre ne fonctionne pas.

Le tableur joint était un exemple pour voir si cela était possible, mon tableur réel est "plus costaud".

Je vous le joins car apparemment on peut "grouper une série de colonnes" puis faire un "suppr" pour cet ensemble = les colonnes en jaune sont à laisser en l'état car contiennent dans le réel des fonctions

Si vous pouviez me faire la macro adaptée pour "colonnes A à E" + suppr et "colonnes "G à S" + suppr pour finir par un tri par le nom.

Mille merci

Cordialement

Tonthon

Bonjour

Tu peux essayer cette macro

Sub Suppression()
' Supprime les colonnes A B C E et H de la ligne active
' Touche de raccourci du clavier: Ctrl+Maj+S
  On Error Resume Next
  Range("A" & ActiveCell.Row).Resize(1, 19).SpecialCells(xlCellTypeConstants, 23).ClearContents
  Range("A5:W" & Range("C" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Voici la macro que je vous propose

Sub Suppression()
On Error Resume Next
L = ActiveCell.Row
L1 = ActiveSheet.UsedRange.Rows.Count
    Range("A" & L & ":E" & L1).ClearContents
    Range("G" & L & ":S" & L1).ClearContents
    Range("A5").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
ouisansdoute a écrit :

Voici la macro que je vous propose

Sub Suppression()
On Error Resume Next
L = ActiveCell.Row
L1 = ActiveSheet.UsedRange.Rows.Count
    Range("A" & L & ":E" & L1).ClearContents
    Range("G" & L & ":S" & L1).ClearContents
    Range("A5").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

J'ai appliqué cette macro qui a l'air de bien fonctionné, je dis "à l'air" parce que malheureusement il vient aussi à perturber des "codes" existants....notamment un comptage dans la colonne A.

Il faudrait que cette macro fasse le tri sur tout le tableur selon le nom sans interférer avec l'existant.

Pour des raisons de confidentialité, je ne peux pas mettre le tableur réel qui contient des données personnelles.

Si tu vois une solution, je suis preneur.

Cordialement

Tonthon


Banzai64 a écrit :

Bonjour

Tu peux essayer cette macro

Sub Suppression()
' Supprime les colonnes A B C E et H de la ligne active
' Touche de raccourci du clavier: Ctrl+Maj+S
  On Error Resume Next
  Range("A" & ActiveCell.Row).Resize(1, 19).SpecialCells(xlCellTypeConstants, 23).ClearContents
  Range("A5:W" & Range("C" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Bonjour,

J'ai appliqué cette macro....parfait pour l'aspect "suppr" dans les colonnes souhaitées

==> c'est nickel-chrome mais il s'arrête la !

En clair, il ne fait pas le tri...j'ai beau essayer de voir et de comprendre....

Tu pourrais revoir le "pourquoi"

Cordialement

Tonthon

Bonjour

Tonthon a écrit :

En clair, il ne fait pas le tri...j'ai beau essayer de voir et de comprendre....

Tu pourrais revoir le "pourquoi"

Mais pour moi il y a un tri

[quote="Banzai64"

Mais pour moi il y a un tri[/quote]

Re

Tu as raison sur le tableur joint c'est nickel-chrome....donc j'ai recopié cette macro dans mon tableur réel.....qui ne veut rien savoir et qui s'arrête au "nettoyage" de la ligne sans faire le tri.

Le tableur réel est beaucoup plus complexe avec des macros, des codes et des feuilles avec liaison mais "normalement" cela ne devrait pas affecter le tri.

Comme j'ai dans ce tableur réel, une macro qui fait le tri et j'ai donc contourné le problème en remplaçant la fin par "call TRIER" c'est à dire le nom de la macro qui trie..... et cela fonctionne.

Sub Suppression()

' Supprime les colonnes A B C E et H de la ligne active

' Touche de raccourci du clavier: Ctrl+Maj+S

On Error Resume Next

Range("A" & ActiveCell.Row).Resize(1, 19).SpecialCells(xlCellTypeConstants, 23).ClearContents

Range("A5:W" & Range("C" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("C5"), Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortNormal

Call TRIER

End Sub

Cette parade évite par ailleurs le problème exposé avec l'autre solution.

Merci de votre aide qui me permet de progresser doucement...

Cordialement

Tonthon

Rechercher des sujets similaires à "enregistrer tab droit macro"