Accueil > Forum > > > > pb VBA excel pilotage de fenêtre
pb VBA excel pilotage de fenêtre
mercredi 18 juin 2008 à 17:21:15 |
pb VBA excel pilotage de fenêtre

rosbeef87100
|
Bonjour à tous, dans le cadre de mon stage je suis amené à découvrir VBA, cela fait deux jours que j'avance mais je bute sur un problème récurrent, j'aimerais emmener la fenêtre d'excel sur une cellule laquelle est déterminer par une fonction. La fonction marche bien et me donne ligne et colonne de la cellule. Le problème c'est que lorsque j'essaie d'envoyer la fenêtre sur cette position il ne se passe rien, j'ai essayé plusieurs méthodes telles que : ActiveWindow.SmallScroll Down:= valeur Cells(Result, c).Activate With ActiveWindow .ScrollColumn = ActiveCell.Column .ScrollRow = ActiveCell.Row End With mais cela ne fonctionne pas, la fenêtre ne bouge pas. Comme je l'ai dis je suis dans une fonction, alors j'ai essayé dans une procédure sub et la miracle cela fonctionne. néanmoins j'ai beaucoup de paramètre dans ma fonction et je ne veux pas la transformer en sub qui rendrai la frappe des paramètres trop longue. J'ai alors essayé de piloter avec une sub en l'appelant de la fonction : Call Center et Sub Center() ActiveWindow.SmallScroll Down:=Result End Sub Result est bien défini en dehors des deux procédure et quand je n'appel que center cela marche très bien. Mais pas lorsque j'utilise ma fonction. Je ne sais plus trop quoi faire, si il est impossible de piloter la fenêtre dans une procédure ce serai vraiment un gros trou dans les fonctions de vba, et ce serai étonnant. Est ce que quelqu'un peut m'aider? Merci d'avance et désolé si la solution est évidente, perso j'ai bien cherché et je ne trouve pas.
|
|
mercredi 18 juin 2008 à 18:00:15 |
Re : pb VBA excel pilotage de fenêtre

bigfish_le vrai
|
Salut, j'aimerais emmener la fenêtre d'excel sur une cellule ??? ça veut dire quoi ? c'est comme si tu voulais mettre ta voiture dans son coffre(de la meme voiture) ou tes pantalons dans une de ses poches(du meme pantalon)  Kway avait inventé le principe mais j'ai jamais imaginé que quelqu'un essairait avec excel  Mais je crois avoir compris : tu voudrais afficher/centrer une cellule de la feuille active sur la fenetre d'excel. tu pourrais nous donner ta fonction pour mieux comprendre le probleme. sinon une autre solution : Application.Goto Reference:=ActiveSheet.Range("Aj400"),Scroll:=True A+ 
|
|
mercredi 18 juin 2008 à 19:28:56 |
Re : pb VBA excel pilotage de fenêtre

rosbeef87100
|
merci big_fish mais cela ne fonctionne pas non plus. cette ligne permet bien de recentrer la fenetre sur une cellule mais dès que tu la met dans une fonction ça ne marche plus. Je cherche à faire quelque chose du genre:
Function GO2(A As Variant, B As Variant) Application.Goto Reference:=ActiveSheet.Cells(A, B), Scroll:=True End Function
|
|
jeudi 19 juin 2008 à 09:31:53 |
Re : pb VBA excel pilotage de fenêtre

lermite222
|
bonjour, Tu ne précise pas Excel ????, Ta fonction est dans un module de feuille ou dans un module de macro ? Si ta fonction est dans un module de feuille c'est pas possible d'agir sur une autre feuille. Si ta fonction est dans un module, essaye en mettant le nom de la feuille d'abord... Sheets("NomFeuille").cells(X,Y).Activate
A+
|
|
jeudi 19 juin 2008 à 10:31:32 |
Re : pb VBA excel pilotage de fenêtre

mortalino
|
salut, je pense que tu nous embrouilles un peu avec ta demande. Un simple Cells(x, y).Activate suffit pour centrer la fenêtre Excel sur cette cellule, et ce, peu importe d'où tu appelles cette instruction. Tu veux une fonction ? pas besoin, le Activate de l'objet Cells ou Range le fait très bien. Donc si ma réponse ne te convient pas, donne plus de détails sur la localisation de ta Sub ou Function (Module, Sheets) et ce genre de chose utile pour notre compréhension @++ le mystérieux chevalier,"Provençal, le gaulois" Forum Office & VBA
|
|
jeudi 19 juin 2008 à 11:15:59 |
Re : pb VBA excel pilotage de fenêtre

rosbeef87100
|
Salut et merci pour vos réponses,
je suis bien sous excel et dans un module, mon problème principal vient du fait que toute ses lignes permettent bien d'envoyer la fenêtre au dessus d'une cellule que ce soit activate ou select mais seulement si l'on se trouve dans une procédure de type sub. Ma fonction est toute symple, et elle a déjà été le sujet de conversation, elle permet de rechercher une donnée dans une colonne du fichier les paramètres de la fonction sont le String recherché, la colonne, la ligne de départ et la ligne de fin de la recherche. Je n'utilise pas Find mais
InStr(1, Cells(i, c).Value, Val, vbTextCompare) = 0
dans une boucle If pour déterminer l'emplacement de la l'information. Soit elle n'est pas trouvé et alors j'ai un message "pas de valeur trouvée" soit j'ai alors toutes les indications la colonne et la ligne de la cellule qui contient la recherche. C'est alors que dans le cas où l'on trouve, je voudrais que la fênetre active soit au niveau de cette ligne, mais c'est alors que se pose le problème : la fenêtre ne bouge pas reste la où elle était. Pour l'instant faute de contre éxemple, je pense que c'est du au fait que mon programme soit une fonction.
Dès que je cherche à centrer la fenètre quelque par dans une sub ça marche très bien, alors deuxième étape j'ai essayé d'appeler une sub dans ma fonction avec "Call Center", mais la non plus il ne se passe rien. La procédure marche très bien lorsqu'elle est appelée seule mais pas lorsqu'elle est appelée de ma fonction.
Je ne cherche pas forcément à trouver une solution miracle, mais j'aimerais juste comprendre si c'est une limitation inhérente aux fonctions VBA ou si c'est moi qui m'y prends mal.
encore un dernier exemple, Result est le nom de ma ligne et c est ma colonne,
Sheets("Nomdelafeuille").Cells(Result, c).Activate
ne marche pas dans la fonction, mais marche très bien dans une Sub Center() Sheets("Nomdelafeuille").Cells(Result, c).Activate End Sub pour peu que j'ai déclaré result en Option Explicit et elle pointe vers la bonne cellule.
Voilà merci pour le temps que vous consacrez à mon petit problème.
|
|
jeudi 19 juin 2008 à 11:21:21 |
Re : pb VBA excel pilotage de fenêtre

lermite222
|
Ont risque de tourner en rond encore longtemps, montre ta macro, ce serra plus simple.
|
|
jeudi 19 juin 2008 à 11:34:16 |
Re : pb VBA excel pilotage de fenêtre

rosbeef87100
|
ok, voilà mais elle n'a rien de spéciale :
Function Find3(ByRef Val As String, c As Double, sta As Double, sto As Double) Dim ok As Double Dim i As Double Result = 0 i = sta ok = 0 If Val <> "" Then While ok <> 1 If (InStr(1, Cells(i, c).Value, Val, vbTextCompare) = 0) Then i = i + 1 Else Result = i ok = 1 End If If i > sto Then ok = 1 MsgBox ("no data found") End If Wend MsgBox ("result " & Result) End If Cells(Result, c).Activate End Function
|
|
jeudi 19 juin 2008 à 11:38:13 |
Re : pb VBA excel pilotage de fenêtre

rosbeef87100
|
Rmq même problème avec ActiveSheet.Cells(Result, c).Activate
|
|
jeudi 19 juin 2008 à 11:57:06 |
Re : pb VBA excel pilotage de fenêtre

lermite222
|
Macro testée, fonctionne normalement et cellule activée... Tu n'aurrais pas des événement gérer dans la feuille comme par exemple dans Private Sub Worksheet_SelectionChange(ByVal Target As Range) Private Sub Worksheet_Activate() ... Si c'est le cas tu peu ajouter au début de ta fonction Application.EnableEvents = False ...... et à la fin Application.EnableEvents = true
|
|
Cette discussion est classée dans : vba, fonction, excel, fenêtre, essayé
Répondre à ce message
Sujets en rapport avec ce message
Fenêtre non modale en VBA / Excel [ par oniros ]
Bonjour à tous, Sous Excel 97, je voudrais, lors de l'affichage d'une fenêtre (UserForm), que l'utilisateur ait accès à la feuille se trouvant derrièr
fonction de tri d'un vecteur sous VBA Excel [ par Delphine2 ]
Bonjour à tous,Je suis utilisatrice confirmée d'Excel, mais débutante en VBA, et j'ai une difficulté :Voilà mon problème : j'ai des colonnes de chiffr
Problème avec fonction sous VBA et Excel [ par BernardBouree ]
J'ai écrit des Fonctions sous VBA pour Excel 200 et pouvoir les utiliser dand un fichier de Macros Complémentaires.Ces fonctions devraient pouvoir êtr
VBA : Execution conditionnelle d'1 macro en fonction d'une cellule Exce [ par sabrina75 ]
Bonsoir à toutes et à tous,Voilà mon pb :Je travaille sous Excel 2000 et je souhaite via VBA faire executer une macro ou une autre en fonction d'un pa
Fonction Trim [ par ShadowWisp ]
VoilaJ'ai un code plein de Trim qui marche niquel, et en changeant de poste, ben il marche plus du tout, parce que d'après le compilateur VBA, le Trim
équivalent de la fonction "decaler" d'excel en VBA [ par vousvous ]
Salut,j'aurais voulu savoir quel est l'équivalent de la fonction "décaler" d'excel en vba.J'ai enregistré une macro mais il me met un referstoR1C1=off
Fonction "printer" pas reconnue en VBA sous Excel ... [ par jsidot ]
Je suis en train d'écrire une petite application en VBA Excel.Je veux y imprimer un Flexgrid. J'ai bien trouvé une fonction du style printer.paintpict
[Excel/VBA]: fonction et renvoi de 2 résultats [ par nico39 ]
Bonjour,je sais qu'une fonction sous VB (et d'autres langages aussi) ne peut renvoyer qu'une seule valeur (ou texte,...). Ma fonction reçoit une adres
Fonction EXCEL inverse.loi.f dans code VBA? [ par fviniac ]
Bonjour,Je programme en EXCEL-VBA et souhaite faire appel à la fonction:INVERSE.LOI.F(probabilité;degrés_liberté1;degrés_
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|