Résultats pour "application onkey"

340 résultats pour cette recherche

Bonjour,

Me revoilà avec une nouvelle interrogation sur les bras.

Je souhaite déclencher ma macro (qui cherche et sélectionne la prochaine case vide dans un ordre précis, bref..) en appuyant seulement sur TAB.
J'ai donc utilisé Application.Onkey mais la macro ne se lance pas du tout.

J'ai mis dans thisworbook :

Private sub workbook_Activate
Application.Onkey "{TAB}", "macro1"
end sub

Private sub workbook_Desactivate
Application.Onkey "{TAB}", "macro1"
end sub

Puis dans un module ma procédure sub macro1()

Ma macro fonctionne très bien quand je la lance seule ou avec une touche raccourci ctrl+... (qui est désactivée pour éviter les pb avec le onkey) mais que je ne veux pas utiliser car trop contraignante pour les utilisateurs de mon fichier. (d'où le choix de TAB qui est assez intuitif pour changer de cellule)

J'ai aussi fait des essais en mettant private sub Worksheet Activate directement dans la fenêtre de code de la feuille mais rien n'y fait, ma macro ne se lance pas.

J'ai aussi essayé avec worksheet_selectionChange, même résultat.

Avez vous une piste pour résoudre mon problème ?

Je ne peux malheureusement pas uploader mon fichier qui est confidentiel ni de fichier quelconque car il sera automatiquement crypté.
Je vous remercie,

Eloïse

Bonjour vous qui me lirez, merci vous qui prendrez la peine de me répondre Pour ma première application sur laquelle je travaille en ce moment en même temps que je me forme serieursement à VBA je suis déjà confronté à un problème qui m'échappe un peu. Cela concerne les raccourcis clavier définis au moyen de la méthode Application.Onkey. J'utilise Excel 2016 sur environnement Windows 10 et tous les raccourcis suivants fonctionnent correctement:

Private Sub ShortcutsKey()
    Application.OnKey "{F12}", "NouvelEnregistrement"
    Application.OnKey "^{F12}", "AfficherPupitre"
    Application.OnKey "%{F12}", ""
    Application.OnKey "^{F11}", "BrowseChart"
    Application.OnKey "{F11}", "SwitchPivotChart"
    Application.OnKey "^{F1}", "AideContextuelle"
    If ReadParameter(8) Then Application.OnKey "{F1}", "AideContextuelle"
End Sub

Mais voilà sur un autre ordinateur avec même OS et version d'Excel seuls les raccourcis précédés d'un ^ (correspond à touche Ctrl enfoncée) ou d'un % (Alt enfoncé) répondent tandis que les raccourcis attribués sans préfixe aux touches de fonction ne fonctionnent pas. Gênant pour l'ergonomie de mon App (et inquiétant de voir que même sur un système identique elle ne fonctionne pas forcément…).

Donc si quelqu'un pouvait m'expliquer un peu mieux les subtilités de OnKey j'en serais ravi

Bonjour a tous,

Débutant en VBA je coince sur quelque chose de probablement très simple. J'ai créé des shortcut pour lancer plus rapidement les macros avec la méthode OnKey. Cela fonctionne très bien sauf pour deux de mes macros.

Après avoir regarder dans la liste de mes macros, je m'aperçois que ces deux macros n'apparaissent pas de la même manière que les autres. En effet leurs nom n'est pas simplement le nom que j'ai donné à la procédure mais un long nom ressemblant à ça : 'nom du classeur .xlsb.xlsm'!Procédure.Procédure

Supposant que le souci vient de là je ne parviens pas a modifier ce nom autrement... Avez-vous une idée s'il vous plaît ? Pourquoi cette différence de nomenclature ?

Je précise que les deux macros en question fonctionne sans soucis mais uniquement depuis un bouton de commande (j'ai un message d'erreur quand j'essaye de lancer depuis le shortcut)

Merci d'avance a ceux qui pourront m'aider

Bonne journée à tous !

Oncle Sid

Bonjour le Forum,

Depuis des années, j'utilise plein de raccourcis personnalisés que j'ai créés avec l'aide reçue sur ce Forum, ça m'a facilité la vie au-delà du possible.

Mais voilà, maintenant je travaille sur Mac au bureau, et aucun de ces raccourcis ne marche.

Quelqu'un sait-il si c'est lié à ma config (Excel 365 + Mac) ou s'il y a qqch à faire ?

Merci.

Quelques exemples de code que j'utilise sur mon PC :

Private Sub Workbook_Open()
'
    Application.OnKey "%{UP}", "PERSONAL.xlsb!Edition_Collage_Spécial_Ajouter_1_à_sélection"
    Application.OnKey "%{DOWN}", "PERSONAL.xlsb!Edition_Collage_Spécial_Soustraire_1_à_sélection"  
    Application.OnKey "%!", "PERSONAL.xlsb!Insérer_date_aujourdhui_fixe"    
    Application.OnKey "%{RIGHT}", "PERSONAL.xlsb!Données_Plan_Grouper"
    Application.OnKey "%{LEFT}", "PERSONAL.xlsb!Données_Plan_Dissocier"    
    Application.OnKey "^&", "PERSONAL.xlsb!Format_police_couleur_noir"
    Application.OnKey "^é", "PERSONAL.xlsb!Format_police_couleur_rouge" 
    Application.OnKey "^M", "PERSONAL.xlsb!Format_Ligne_Masquer"
    Application.OnKey "^%{PGUP}", "PERSONAL.xlsb!Edition_Lignes_sélectionnées_Monter"
    Application.OnKey "^%{PGDN}", "PERSONAL.xlsb!Edition_Lignes_sélectionnées_Descendre"
    Application.OnKey "%p", "PERSONAL.xlsb!Format_Police_taille_plus_1"
    Application.OnKey "+%p", "PERSONAL.xlsb!Format_Police_taille_moins_1"
    Application.OnKey "^%+{LEFT}", "PERSONAL.xlsb!Format_Cellule_Justifier_Gauche"
    Application.OnKey "^%p", "PERSONAL.xlsb!Police_passer_en_majuscules"
    Application.OnKey "^%m", "PERSONAL.xlsb!Police_passer_en_minuscules"
    Application.OnKey "^+%l", "PERSONAL.xlsb!Insérer_1_LUNDI_PROCHAIN"
    Application.OnKey "^{" & vbKeyNumpad1 & "}", "PERSONAL.xlsb!Données_TRI_col_01"
    Application.OnKey "^{" & vbKeyNumpad2 & "}", "PERSONAL.xlsb!Données_TRI_col_02"
    Application.OnKey "^{" & vbKeyNumpad3 & "}", "PERSONAL.xlsb!Données_TRI_col_03"
    Application.OnKey "^{" & vbKeyNumpad0 & "}", "PERSONAL.xlsb!Affichage_Zoom_Zone_d_impression"
End Sub

Bonsoir,

Au démarrage du fichier joint "Test", un calendrier s'ouvre automatiquement et indique une journée à valider par le bouton "OK".

J'aimerais m'affranchir de cette étape.

Peut on utiliser - Application.OnKey Key:="~" - pour que le code vba simule la saisie de la touche entrée?

J'ai tenté d'insérer cette commande dans une macro, en vain.

Merci pour votre aide.

26test.xlsm (199.21 Ko)

Bonjour Forum !

J’utilise la méthode Onkey pour créer des raccourcis qui lancent des macros dans tous les classeurs, ou dans des classeurs spécifiques.

En revanche, est-il possible de créer des raccourcis valables dans une feuille seulement ?

Si oui, quelle est la bonne syntaxe ?

Merci !

Bonjour,

J'ai un problème lié à Application.ScreenUpdating. Je l'utilise au début de toutes mes macros sur un fichier, je le paramètre sur False et ça marche très bien.

Dans les versions précédentes de mon fichier, tout fonctionnait bien sur mon ordinateur de travail, mais pas sur celui de mes collègues, ni mon ordinateur personnel. Pour information, mes collègues et moi sommes sur Excel 2010, et mon ordinateur personnel sur Excel 2016.

Aujourd'hui, dans la dernière version de mon fichier, le problème s'est résolu sur l'ordinateur de mes collègues, pour je ne sais quelle raison Néanmoins, il persiste sur mon ordinateur personnel qui est une bête de course à comparer avec les ordinateurs du travail.

1) La ligne Application.ScreenUpdating ne fait plus son travail ! Mais alors pourquoi uniquement sur mon ordinateur perso ?

Hypothèse : La macro en question fait appel plusieurs fois à une macro événementielle que je ne peux contourner qui fait elle-même appel à un userform, c'est lui qu'on voit apparaître et disparaître 2 ou 3 fois.

2) Est-ce que la ligne Application.EnableEvents aurait son intérêt ?

Cordialement.

Bonjour,

Je suis en train de travailler sur le doc excel pour la gestion de compte via le travail de LouReed (https://forum.excel-pratique.com/applications/suivi-de-compte-ng-v5-3-t56987-60.html)

Je ne comprends pas forcément toutes les lignes. J'ai suivie les cours VBA mais après "les conditions", j'ai décroché.

Est-ce que vous pouvez me dire à quoi servent les lignes :

Application.EnableEvents = True

Application.ScreenUpdating = True

Je les vois régulièrement dans les macros et je ne sais vraiment pas ce qu'elles signifient, l'utilité... J'ai cherché sur le net et le forum mais je n'ai pas trouvé d'explication

Merci

Bonsoir,

Je voudrai faire appel une fois de plus à vous, cette fois ci j’aimerai gérer mon application comme une gestion de menus et applications :

Exemple : La première feuille servirait à me guider vers d’autres feuilles (pas de pb)

Les autres feuilles doivent me servir à lancer d’autres applications.

Mon pb, j’arrive à lancer une application mais je n’arrive pas à gérer le lancement si celui-ci je l’ai déjà lancé (d’où l’utilité de fermer l’application appelé lorsque je reviens sur l’application du départ. Ci-joint mon travail. Dans Editions, j’aimerai lancer une application Emargement (déjà faite), quitter cette application, pouvoir y revenir etc.

A plus tard et merci d’avance

Annette

Bonjour,

Je suis débutant en VBA et je travaille actuellement sur une macro qui va me permettre de remplir des champs d'une application avec une trame bien définie. Pour le moment j'arrive à activer mon application en premier plan via la macro suivante:

Option Explicit
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow& Lib "user32" (ByVal hwnd&, ByVal wCmd&)
Private Declare Function GetWindowLong& Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd&, ByVal nIndex&)
Private Declare Function GetWindowText& Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd&, ByVal lpString$, ByVal aint&)
Private Const mconMAXLEN = 255

Sub AxelActivate()

Dim hwnd&, Style&, Title$, i&
hwnd = GetWindow(GetDesktopWindow(), 5)

Do While hwnd
Title = GetCaption(hwnd)
If Len(Title) Then
    If GetWindowLong(hwnd, -16) And &H10000000 Then
        If InStr(1, Title, "Axel", 1) Then
        AppActivate Title

        SendKeys "~"

        Exit Sub
        End If

    End If
End If

hwnd = GetWindow(hwnd, 2)
Loop

MsgBox "Vérifier si l'application GIR est ouverte !", vbCritical, "ERROR"

End Sub

Private Function GetCaption(hwnd&) As String
Dim i%, Buffer$: Buffer = String$(254, 0)
i = GetWindowText(hwnd, Buffer, 255)
If i Then GetCaption = Left$(Buffer, i)
End Function

Et il me faut, par la suite, de cliquer sur un bouton sur cette application, en l’occurrence, le bouton "Déclarer incident", pour avoir les champs à remplir, que je compte remplir avec la méthode Sendkeys.

Ma question, est comment je peux cliquer sur ce bouton via VBA?

Merci d'avance pour votre aide.

Cdt;

Bonjour à tous,

Dans le cadre d'un projet pro, je me lance dans le développement d'une application Excel d'un nouveau genre et vos avis m'intéressent

Imaginez que vous et vos collègues de travail puissiez tous travailler sur un même fichier Excel en même temps (et même à distance), quels outils vous aideraient vraiment au quotidien dans la gestion de votre activité ?

Ces outils partagés (intégrés dans un seul fichier Excel) peuvent être potentiellement très variés, en voici quelques exemples :

  • un bloc-notes
  • une todo list
  • un calendrier
  • un outil pour gérer les contacts
  • un chat de discussions
  • un outil de gestion de stock
  • une liste à cocher (par exemple pour une liste partagée de prospects à contacter)
  • une liste de projets avec leurs tâches
  • une FAQ
  • un outil pour gérer des réservations
  • etc.

Des options supplémentaires peuvent également être envisagées, comme par exemple :

  • autoriser uniquement certains utilisateurs pour certains outils
  • limiter certains utilisateurs en lecture seule
  • proposer une version Web (complète ou partielle) d'un outil
  • mettre à disposition des développeurs une API (qui permettrait par exemple de pouvoir utiliser/modifier certaines données précises de l'application Excel à partir d'autres applications, telles qu'un site Web)
  • etc.

Notez que les outils peuvent être relativement simples (par exemple : un bloc-notes partagé) ou beaucoup plus complexes (par exemple : un outil de gestion de stock similaire à https://www.excel-pratique.com/fr/logiciels/gestion-stock).

La liste des premiers outils de la future application Excel multi-utilisateur n'est pas encore définie, vos réponses peuvent donc influer sur le choix des outils qui seront proposés ! Et qui sait, l'outil qu'il vous manque pour votre activité sera peut-être développé

Pour répondre à ce sondage (2 questions), c'est par ici : https://forms.gle/APuQ2bMSXnCb3xPT6

Merci à tous pour vos réponses !

Bonjour,J'ai developpé il y a quelques temps une application vba sur excel qui permet d'ouvrir des documents word, de les completer automatiquement et de les enregistrer en pdf. Une dixaine de personnes l'utilise et le tracage est effectué sur ce même fichier excel.

Initialement, nous etions tous sur Office 2010 mais nous passons progressivement sur Office 2016. Vous voyez le probleme arriver, un jour une personne a utilisé l'application sous office 2016, la référence "Word Application 14" a été remplacée automatiquement par la référence "Word Application 16" et depuis on ne peut plus utiliser le fichier sous Office 2010 sans modifier manuellement la référence car la référence "Word Application 16" n'est pas reconnu par Office 2010.J'ai essayé la solution ici : https://forum.excel-pratique.com/viewtopic.php?t=129117

Mais ca ne marche pas car j'ai besoin des références pour faire fonctionner mon application.

Une solution pour cette période transitoire ? Est-ce possible d'automatiser la selection d'une référence via macro ? Du genre, si l'application detecte qu'on utilise Office 2010, elle decoche la référence "Word Application 16" si elle existe et coche "Word Application 14".

Merci d'avance !

Lucas

Bonjour à tous,

J'aimerai un coup de main svp. Comment je pourrais faire pour alimenter une cellule avec toutes les valeurs trouvées avec Application.VLookup, comme une formule matricielle, sauf que je dois passer obligatoirement par VBA.

Pour le moment dès que Application.VLookup trouve une valeur il passe à la recherche suivante, normal vous me direz.

Merci pour votre aide.

DernLigneZ = Range("A" & Rows.Count).End(xlUp).Row
For i = DernLigneZ To 13 Step -1

  If Cells(i, 3) = "M" Then

      Cells(i, 11) = "Donn " & Application.VLookup(Cells(i, 2), Workbooks("DonHum.xlsm").Sheets("CB").Range("a1:c" & DernLigneA), 2, 0) & " : " & _
      Application.VLookup(Cells(i, 2), Workbooks("DonHum.xlsm").Sheets("CB").Range("a1:c" & DernLigneA), 3, 0) & " €"

        If IsError(Cells(i, 11)) Then
            Cells(i, 11) = ""
      End If

      Cells(i, 7) = "Pret : " & Application.VLookup(Cells(i, 2), Workbooks("DonHum.xlsm").Sheets("Esp").Range("a1:c" & DernLigneB), 3, 0)
        If IsError(Cells(i, 7)) Then
            Cells(i, 7) = ""
        End If

End If

Bonjour,

Je souhaite envoyer un mail lorsqu'on clique sur un bouton de mon UserForm, j'y suis arrivée mais en passant par l'application Outlook or je souhaiterais l'ouvrir avec l'application Courrier et Calendrier.

J'ai essayé de plusieurs manières la seule qui fonctionne le mieux, pour l'instant, est en utilisant le hyperlien mais je n'arrive pas à remplir le body et le sujet du mail.

Voici mon code :

Private Sub CommandButton7_Click()

Dim R As Range
Dim R_LignE As Integer
Dim xOutMail As Object
Dim xMailBody As String

NomMailEntrD = "Mail Transporteur"
NomDonneeS = "DONNEES"
NomFichieR = ActiveWorkbook.Name
NomMail = "MAIL"

MailEntrD_Col = Workbooks(NomFichieR).Sheets(NomMail).Range("A:ZZ").Find(NomMailEntrD, LookIn:=xlValues, lookat:=xlWhole).Columm

Set R = Workbooks(NomFichieR).Sheets(NomMail).Range("A:ZZ").Find(what:=ComboBox3.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not R Is Nothing Then
    R_LignE = R.Row
    Workbooks(NomFichieR).Sheets(NomMail).Activate
    Workbooks(NomFichieR).Sheets(NomMail).Cells(R_LignE, MailEntrD_Col).Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End If
xMailBody = "Bonjour, " & vbNewLine & _
    "Nous avons la commande " & ncde.Value & " à vous livrer le " & ComboBox4.Value & "/" & ComboBox5.Value & "/" & TextBox37.Value & " pour " & total_pal.Value & " PAL - " & TextBox18.Value & " EUR / " & TextBox21.Value & " SOL. Pouvez-vous me donner une heure de livraison entre 8h et 12h?" & vbNewLine & _
    "Merci."
On Error Resume Next
xOutMail = Application.CreateItem(0) 'le problème vient d'ici en premier lieu d’après VBA
With xOutMail
    .To = ComboBox3.Value
    .CC = ""
    .BCC = ""
    .Subject = "Demande de RDV " & TextBox24.Value & " CDP DISTRIBUTION"
    .TextBody = xMailBody
End With
'On Error GoTo 0
Set xOutMail = Nothing
End Sub

Bonjour, je m'explique

J'ai fais un petit truc sur excel en vba le problème que j'ai c'est que je voudrais le transformer en exe ou faire en sorte de pouvoir l'ouvrir en tant que application sans excel, ça doit être possible mais je n'arrive vraiment pas a le faire,

faire en sorte que notre "programme" sur excel soit transferer en une application autonome ou on n'a plus besoin d'excel pour l'ouvrir

merci beaucoup d'avance !

Bonjour,

Je bataille pour afficher un offset d'une valeur trouver avec Application.Min

Cela fonctionne bien pour trouver ma valeur mais comme elle se trouve à un endroit quelconque d'une base de données je voudrais avoir son adresse (on fera une bouffe ensemble à 1 mètre de distance avec un masque) pour afficher une autre cellule en offset.

Impossible de trouver comment récupérer l'adresse d'une valeur trouver avec "function"

Merci pour votre aide

Bonjour,

Je souhaite faire apparaître un message lorsque les utilisateurs d’un fichier partagé oublient de le fermer, si il est ouvert en modification.

Tout va bien pour le déclenchement du message toutes les xx secondes (30 dans l’exemple). Par contre, la macro ne s’arrête pas à la fermeture du fichier, et il ré-ouvre le fichier systématiquement.

J’ai lu dans les précédents échanges qu’il s’agit certainement d’un problème de définition du temps, mais ça dépasse mes connaissances...

Voilà mes macros :

Workbook

Private Sub Workbook_Open()
Call Reminder
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime LastReminder, "Reminder1", , False
'(egalement essayé : Application.OnTime LastReminder, "Reminder1", False)
End Sub

Module :

Sub Reminder()
Dim LastReminder As Variant
LastReminder = Now() + TimeValue("00:00:30")
Application.OnTime LastReminder, "Reminder1"
End Sub

Sub Reminder1()
If ThisWorkbook.ReadOnly = False Then
Dim Msg, Style, Title, Response
Msg = "You have the xxxxxxx opened for more than 30secondes. Remember to close it if you don't need it !"    ' Define message.
Style = vbCritical + vbApplicationModal    ' Define buttons.
Title = "Reminder"    ' Define title.
Response = MsgBox(Msg, Style, Title)
Call Reminder
Else
Call Reminder
End If
End Sub

Merci pour votre aide et vos conseils

Bonjour,

je tente de lancer une macro a l'ouverture de classeur et ai trouvé une fonction le permettant à priori:

Application.OnTime Now + TimeValue("00:00:10"), "macro"

seulement voila, excel m'indique un message d'erreur:

impossible de lancer la macro, il est possible qu'elle ne soit pas présente dans le classeur

cependant il s'avère que j'ai la dites macro dans thisworkbook justement

Une petite idée?

merci

Bonsoir comment allez vous ?

j'ai dans mon code un bouton qui me permet d'envoyer par mail

je voudrais savoir s'il est possible que l'application nous signale si l'ordinateur est connecté a internet ou pas

S'il existe un code, merci de bien vouloir m'aider et me montrer comme ça marche

Bonjour à tous,

J'aimerais pouvoir appliquer un filtre sur un TCD via VBA. Pour ce faire j'utilise le code suivant, qui fonctionne mais son application est très longue :

Dim pt As PivotItem

For Each pt In ActiveSheet.PivotTables("TCD").PivotFields("CompteNum").PivotItems

pt.Visible = Left(pt.Name, 3) = "401"

Next pt

L'idée de mon filtre est de ne sélectionner que les comptes qui commencent par 401.

Je pense qu'il est possible d'utiliser cette fonction :

ActiveSheet.PivotTables("TCD").PivotFields("CompteNum").ClearAllFilters

ActiveSheet.PivotTables("TCD").PivotFields("CompteNum").PivotFilters.Add Type:=xlCaptionEquals, Value1:=

Mais j'ai beau tourner le truc dans tous les sens je n'arrive à rien, je me tourne donc vers vous .

Recherches récentes

accentlist deroulantelist deroulante conditionssupprespacecalendrier jours feriestableaux structurescoefficientcomplementbic ibangestion stock fournisseurachat fournisseurstock fournisseurprime assiduitepage suivanteaujourd huicommande fournisseurbon commande etat commandes liste fournisseursmacro activemissionappels