[EXCEL03] Changement automatique de clavier
Fermé
impolitis
Messages postés
11
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
3 février 2011
-
2 févr. 2011 à 09:51
impolitis Messages postés 11 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 3 février 2011 - 3 févr. 2011 à 07:50
impolitis Messages postés 11 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 3 février 2011 - 3 févr. 2011 à 07:50
A voir également:
- [EXCEL03] Changement automatique de clavier
- Changer clavier qwerty en azerty - Guide
- Changer de dns - Guide
- Comment taper / sur clavier - Guide
- Telecharger clavier arabe تنزيل لوحة المفاتيح العربية - Télécharger - Divers Web & Internet
- Télécharger clavier arabe samsung - Télécharger - Bureautique
6 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
2 févr. 2011 à 12:54
2 févr. 2011 à 12:54
Bonjour,
J'ai eu une lecture plus restrictive que ange : sélectionner le clavier actif
Il faut d'abord que tu ailles définir des raccourcis clavier pour chaque langue via le panneau de configuration 'région et langue / claviers et langues / modifier les claviers... / paramètres de touches avancés' et par exemple :
Ctrl+Maj+0 : français
Ctrl+Maj+1 : anglais
Ctrl+Maj+2 : grec
....
A mettre dans le code de la feuille concernée :
Et tant qu'on y est :
clavier français si tu quittes ta feuille dictionnaire (Feuil2 par exemple):
clavier français à la fermeture du classeur :
eric
J'ai eu une lecture plus restrictive que ange : sélectionner le clavier actif
Il faut d'abord que tu ailles définir des raccourcis clavier pour chaque langue via le panneau de configuration 'région et langue / claviers et langues / modifier les claviers... / paramètres de touches avancés' et par exemple :
Ctrl+Maj+0 : français
Ctrl+Maj+1 : anglais
Ctrl+Maj+2 : grec
....
A mettre dans le code de la feuille concernée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case Target.Column Case 2 'colonne B SendKeys ("^+(1)") ' clavier anglais Case 3, 4 'colonnes C, D SendKeys ("^+(2)") 'clavier grec Case Else ' sinon SendKeys ("^+(0)") ' clavier français End Select End Sub
Et tant qu'on y est :
clavier français si tu quittes ta feuille dictionnaire (Feuil2 par exemple):
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) If Sh.Name = "Feuil2" Then SendKeys ("^+(0)") End Sub
clavier français à la fermeture du classeur :
Private Sub Workbook_BeforeClose(Cancel As Boolean) SendKeys ("^+(0)") End Sub
eric
Ange420
Messages postés
423
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
14 janvier 2013
234
2 févr. 2011 à 12:20
2 févr. 2011 à 12:20
Difficile d'avoir deux correcteurs orthographiques sur la même feuille excel, j'ai essayé par colonne, il garde la dernière langue utilisée en mémoire.
Par contre va voir ici
https://support.microsoft.com/fr-fr/office/pack-d-accessoires-linguistiques-pour-office-82ee1236-0f9a-45ee-9c72-05b026ee809f?ocmsassetid=ha010354264&ctt=5&origin=ha010361028&correlationid=b39f49c9-878e-4b77-876f-9a94f1e26e22&ui=fr-fr&rs=fr-fr&ad=fr
et ici pour étudier de plus près si cela peut être intéressant pour toi.
http://office.microsoft.com/fr-ch/excel-help/instructions-pas-a-pas-preparation-de-lordinateur-a-la-saisie-et-a-la-modification-dun-texte-dans-une-langue-differente-HA010354271.aspx?CTT=5&origin=HA010354264
Après peut être qu'en Vb il est possible d'affilier une langue à une colonne, je laisse aux développeurs le soin de répondre à ta question.
Bon courage et j'espère que tu trouveras une solution
Par contre va voir ici
https://support.microsoft.com/fr-fr/office/pack-d-accessoires-linguistiques-pour-office-82ee1236-0f9a-45ee-9c72-05b026ee809f?ocmsassetid=ha010354264&ctt=5&origin=ha010361028&correlationid=b39f49c9-878e-4b77-876f-9a94f1e26e22&ui=fr-fr&rs=fr-fr&ad=fr
et ici pour étudier de plus près si cela peut être intéressant pour toi.
http://office.microsoft.com/fr-ch/excel-help/instructions-pas-a-pas-preparation-de-lordinateur-a-la-saisie-et-a-la-modification-dun-texte-dans-une-langue-differente-HA010354271.aspx?CTT=5&origin=HA010354264
Après peut être qu'en Vb il est possible d'affilier une langue à une colonne, je laisse aux développeurs le soin de répondre à ta question.
Bon courage et j'espère que tu trouveras une solution
impolitis
Messages postés
11
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
3 février 2011
Modifié par impolitis le 2/02/2011 à 14:54
Modifié par impolitis le 2/02/2011 à 14:54
Merci à vous deux.
@ ange
Je n'utilise pas de correcteur orthographique car ils me posent plus de problèmes qu'ils n'apportent de solution.
@ eriiic
Merci, cela fonctionne à merveille.
Un point reste à améliorer :
Voici ma ligne concernant la sortie de la feuille...
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name = "Lexiko" Then SendKeys ("^+(2)") ' clavier français en quittant
End Sub
Cela ne fonctionne pas.
Je n'ai pas utilisé les mêmes combinaisons de touche que toi.
En tout cas un grand merci cela me soulage énormément.
EDIT : En fait cela fonctionne très bien, il ne fallait tout simplement pas mettre le code au même endroit. Dans Thisworkbook ça va de suite beaucoup mieux. Je dormais un peu ;-)
@ ange
Je n'utilise pas de correcteur orthographique car ils me posent plus de problèmes qu'ils n'apportent de solution.
@ eriiic
Merci, cela fonctionne à merveille.
Un point reste à améliorer :
Voici ma ligne concernant la sortie de la feuille...
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name = "Lexiko" Then SendKeys ("^+(2)") ' clavier français en quittant
End Sub
Cela ne fonctionne pas.
Je n'ai pas utilisé les mêmes combinaisons de touche que toi.
En tout cas un grand merci cela me soulage énormément.
EDIT : En fait cela fonctionne très bien, il ne fallait tout simplement pas mettre le code au même endroit. Dans Thisworkbook ça va de suite beaucoup mieux. Je dormais un peu ;-)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
2 févr. 2011 à 14:16
2 févr. 2011 à 14:16
Oui, les 2 autres macros sont bien à mettre dans thisworkbook.
N'oublie pas de mettre en résolu ;-)
eric
N'oublie pas de mettre en résolu ;-)
eric
Ange420
Messages postés
423
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
14 janvier 2013
234
2 févr. 2011 à 14:40
2 févr. 2011 à 14:40
Merci Eriiic,
Si tu permets je la conserve aussi elle peut me servir en formation pour des prof.
Bonne continuation
Si tu permets je la conserve aussi elle peut me servir en formation pour des prof.
Bonne continuation
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
2 févr. 2011 à 16:33
2 févr. 2011 à 16:33
Pas de soucis ange, les forums sont faits pour ça :-)
Ange420
Messages postés
423
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
14 janvier 2013
234
2 févr. 2011 à 18:46
2 févr. 2011 à 18:46
Merci beaucoup !!
impolitis
Messages postés
11
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
3 février 2011
2 févr. 2011 à 19:18
2 févr. 2011 à 19:18
Bon, je rouvre parce qu'il y a un petit hic...
Sur cette Feuil j'ai un autre code qui me ramène le curseur dans la première cellule libre en bas de B après modife d'une cellule.
Le problème est que lorsque j'atteris en Bxxxx après avoir validé une cellule n'importe où, le clavier grec n'est pas détecté.
Voici mes deux codes, expérimentaux pour l'instant :
' Curseur première cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. à partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
End If
End Sub
' Clavier fonction de colonne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column
Case 2 'colonne B
SendKeys ("^+(1)") ' clavier grec
Case 3 'colonnes C
SendKeys ("^+(2)") ' clavier français
End Select
End Sub
Une idée du comment du "coinçage" ?
Sur cette Feuil j'ai un autre code qui me ramène le curseur dans la première cellule libre en bas de B après modife d'une cellule.
Le problème est que lorsque j'atteris en Bxxxx après avoir validé une cellule n'importe où, le clavier grec n'est pas détecté.
Voici mes deux codes, expérimentaux pour l'instant :
' Curseur première cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. à partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
End If
End Sub
' Clavier fonction de colonne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column
Case 2 'colonne B
SendKeys ("^+(1)") ' clavier grec
Case 3 'colonnes C
SendKeys ("^+(2)") ' clavier français
End Select
End Sub
Une idée du comment du "coinçage" ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 2/02/2011 à 19:32
Modifié par eriiic le 2/02/2011 à 19:32
sous ton .select ajoute :
Call Worksheet_SelectionChange(Target)
et n'oublie pas de mettre en résolu... ;-)
eric
Call Worksheet_SelectionChange(Target)
et n'oublie pas de mettre en résolu... ;-)
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
impolitis
Messages postés
11
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
3 février 2011
3 févr. 2011 à 06:43
3 févr. 2011 à 06:43
Merci eriiic.
Cependant cela ne fonctionne pas.
J'ai maintenant ces deux codes :
' Curseur première cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. à partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
Call Worksheet_SelectionChange(Target)
End If
End Sub
' Clavier fonction de colonne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column
Case 2 'colonne B
SendKeys ("^+(1)") ' clavier grec
Case 3 'colonnes C
SendKeys ("^+(2)") ' clavier français
End Select
End Sub
pourtant la logique me semble correcte, de même que la syntaxe. Y'a un binz...
Cependant cela ne fonctionne pas.
J'ai maintenant ces deux codes :
' Curseur première cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. à partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
Call Worksheet_SelectionChange(Target)
End If
End Sub
' Clavier fonction de colonne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column
Case 2 'colonne B
SendKeys ("^+(1)") ' clavier grec
Case 3 'colonnes C
SendKeys ("^+(2)") ' clavier français
End Select
End Sub
pourtant la logique me semble correcte, de même que la syntaxe. Y'a un binz...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
3 févr. 2011 à 07:06
3 févr. 2011 à 07:06
Bonjour,
Sur mes tests ça semblait marcher pourtant...
Mets-y directement le sendkeys alors... Il faudra seulement penser en cas de modif à le faire aux 2 endroits.
eric
Sur mes tests ça semblait marcher pourtant...
Mets-y directement le sendkeys alors... Il faudra seulement penser en cas de modif à le faire aux 2 endroits.
eric
impolitis
Messages postés
11
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
3 février 2011
3 févr. 2011 à 07:50
3 févr. 2011 à 07:50
Qu'entends tu par mettre directement le SendKeys ?
' Curseur premi?re cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. ? partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
SendKeys ("^+(1)") ' clavier grec
End If
End Sub
Ceci ne fonctionne pas, mais il n'y a pas de déclaration de changement...
Sur tes tests... Es-tu sous EX2003 ?
Merci de ton aide.
' Curseur premi?re cellule libre de B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then ' si col. ? partir de B
Range("b" & Rows.Count).End(xlUp).Offset(1).Select ' envoi du curseur
SendKeys ("^+(1)") ' clavier grec
End If
End Sub
Ceci ne fonctionne pas, mais il n'y a pas de déclaration de changement...
Sur tes tests... Es-tu sous EX2003 ?
Merci de ton aide.