Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passé d'une cellule fin de ligne à la cellule début de ligne suivante automatiquement

0 views
Skip to first unread message

Claude Cyr

unread,
Sep 6, 2001, 3:38:35 PM9/6/01
to
Je cherche un moyen qui me permettrai de passer automatiquement d'une
cellule à la fin d'une ligne... à la cellule au début de la ligne
suivante. Quelqu'un a une idée de génie! (ex: en sortant de la cellule
G3 le curseur se déplace automatiquement à la cellule A4)

Merci à l'avance

B Mazas

unread,
Sep 6, 2001, 3:19:48 PM9/6/01
to
Salut Claude

Tu démarres en A3, tu fais TAB pour passer successivement en B3, C3... F3.
Arrivé en G3, tu fais ENTREE et tu te retrouves en A4.

Bernard

"Claude Cyr" <clau...@globetrotter.net> a écrit dans le message news:
3B97CEDA...@globetrotter.net...

Robert Dezan

unread,
Sep 6, 2001, 4:18:58 PM9/6/01
to
Salut Bernard,
Ne soit pas modeste, c'est une idée de génie c'est Claude qui l'a dit

"Quelqu'un a une idée de génie! "
en tout cas on pourra toujours remercier les programmeurs de chez MS pour
tous ces petits trucs qui font gagner un temps fou à tous les besogneux que
nous sommes ( peut être pas tous car il y a des retraités connus )
A+
Robert

B Mazas <bbm...@club-internet.fr> a écrit dans le message :
eMOcdwwNBHA.1304@tkmsftngp03...

Denis Michon

unread,
Sep 6, 2001, 4:26:04 PM9/6/01
to
Bonjour Claude,

Voici quelque chose à partir duquel tu peux
raffiner une procédure amusante:
Tester rapidement et ça fonctionne!

Que tu fasses tab ou Enter tu te retrouveras en A1.

À insérer dans ton module-feuille à partir
de laquelle tu veux faire appliquer cette procédure.

A déclarer cette variable dans le haut du module-feuille
Dim Adresse As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MaRange As Range
Set MaRange = Union(Range("G2"), Range("G4"), Range("F3"), Range("H3"))

Application.EnableEvents = False
If Union(Target, MaRange).Address = MaRange.Address Then
If Adresse = "$G$3" Then
Range("A1").Activate
Adresse = Target.Address
End If
End If
Adresse = Target.Address
Application.EnableEvents = True

End Sub

Amuse-toi bien!!!

Salutations!

"Claude Cyr" <clau...@globetrotter.net> a écrit dans le message news:
3B97CEDA...@globetrotter.net...

Denis Michon

unread,
Sep 6, 2001, 4:43:05 PM9/6/01
to
Bonjour,

Le petit programme fonctionne Avec Enter et les
touches de direction mais pas avec Tab.

Salutations!


"Denis Michon" <deni...@ntic.qc.ca> a écrit dans le message news:
u06ecGxNBHA.2156@tkmsftngp04...

popi

unread,
Sep 6, 2001, 6:22:18 PM9/6/01
to
Salut Claude, tu peux utiliser çà pour délimiter momentanément ta zone de
travail et l'enlever ensuite :

Sub terrain()
Worksheets(1).ScrollArea = "a1:g3"
End Sub

Sub efface_terrain()
Worksheets(1).ScrollArea = ""
End Sub


--
@+ popi
" Quadra ressoudeur "
http://perso.infonie.fr/popi/
(N'oubliez pas Bonjour, au revoir, Merci d'avance, contre Malpolitus !)

"Claude Cyr" <clau...@globetrotter.net> a écrit dans le message news:
3B97CEDA...@globetrotter.net...

Benoît Marchand

unread,
Sep 10, 2001, 8:39:05 PM9/10/01
to
Salut Claude,


Voici deux solutions que j'avais proposé en début d'année :

1) Cette macro s'exécute uniquement lorsque la valeur de la cellule active change

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Target.Column
Case 1
Cells(Target.Row, 2).Activate
Case 2
Cells(Target.Row, 3).Activate
Case 3
Cells(Target.Row + 1, 1).Activate
Case Else
End Select
End Sub

Il faut mettre ce code dans le module de la feuille de calcul concernée.

2) Cette macro, beaucoup plus complète, utilise la méthode OnKey pour géré les 2 touches
Entrées. En appuyant simultanément sur MAJ+ENTREE, la tabulation s'inverse.

' ************* Codes à mettre dans le module de la feuille de calcul :
Private Sub Worksheet_Activate()
Application.OnKey "{ENTER}", "CellSuivante"
Application.OnKey "+{ENTER}", "CellPrecedente"
Application.OnKey "~", "CellSuivante"
Application.OnKey "+~", "CellPrecedente"
End Sub
Private Sub Worksheet_Deactivate()
Application.OnKey "{ENTER}"
Application.OnKey "+{ENTER}"
Application.OnKey "~"
Application.OnKey "+~"
Tabulation=Empty
End Sub
' ********** Codes à mettre dans le module du WorkBook :
Private Sub Workbook_Open()
Application.OnKey "{ENTER}", "CellSuivante"
Application.OnKey "+{ENTER}", "CellPrecedente"
Application.OnKey "~", "CellSuivante"
Application.OnKey "+~", "CellPrecedente"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{ENTER}"
Application.OnKey "+{ENTER}"
Application.OnKey "~"
Application.OnKey "+~"
Tabulation=Empty
End Sub
' ********** Codes à mettre dans un module standard :
Public Tabulation As Variant, NuCol As Byte
Sub CellSuivante()
Tabulation = Array(1, 4, 3, 2, 5)
If IsEmpty(Tabulation) Then Tabulation = Array(1, 4, 3, 2, 5)
If NuCol + 1 > UBound(Tabulation) Then
Cells(ActiveCell.Row + 1, Tabulation(0)).Activate
NuCol = 0
Else
Cells(ActiveCell.Row, Tabulation(NuCol + 1)).Activate
NuCol = NuCol + 1
End If
End Sub
Sub CellPrecedente()
If IsEmpty(Tabulation) Then Tabulation = Array(1, 4, 3, 2, 5)
If NuCol - 1 < LBound(Tabulation) Then
If ActiveCell.Row > 1 Then
Cells(ActiveCell.Row - 1, Tabulation(UBound(Tabulation))).Activate
NuCol = UBound(Tabulation)
End If
Else
Cells(ActiveCell.Row, Tabulation(NuCol - 1)).Activate
NuCol = NuCol - 1
End If
End Sub
' **********

La tabulation passe par le tableau Tabulation :
Tabulation = Array(1, 2, 3, 4, 5)
Tu peux même changer l'ordre de la tabulation dans le tableau (Exemple : Tabulation = Array(1, 4, 3, 2, 5)
Cette méthode à la particularité qu'une fois le code installé, les colonnes de tabulation sont
facilement modifiables, il serait même aisé de remplir le tableau via un InputBox.

Si tu ne sais pas ou placer le code, demande.

A+
Benead

Claude Cyr a écrit :

0 new messages