Merci à l'avance
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...
B Mazas <bbm...@club-internet.fr> a écrit dans le message :
eMOcdwwNBHA.1304@tkmsftngp03...
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...
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...
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...
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 :