Erreur avec la propriete Top
Bonjour a tous, sans aucune modification de mon code, je me retrouve avec quelques erreurs lorsque mon VBA essai de definir la taille des fenetres. Voici un endroit ou j'ai ce type d'erreur :impossible de definir la propriete TOP de la classe Window. Je roule maintenant sur un nouveau PC avec windows10 et une reolution d'ecran differente. Notez que TOP a la valeur -23 et left -5,75 si je pointe la souris dessus.
Quelqu'un a une piste...
Sub twowindows2() 'Utilise dans mode Debug et Simulateur.Ce sub doit etre ici car on vise 2 feuilles differentes
Application.DisplayFullScreen = False
Application.ScreenUpdating = False
Sheets("ASS compile").Select
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.NewWindow
Sheets("EPE").Select 'XLS:2
Rows("3:3").Select
ActiveWindow.FreezePanes = True
Range("A3").Select
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayHorizontalScrollBar = False
With ActiveWindow 'fenetre EPE
.Top = 280
.Left = 0
.Width = 1200
.Height = 260
End With
'ActiveWindow.zoom = 80
Windows("LOGICIEL 60.xls:1").Activate 'fenetre principale
With ActiveWindow
[color=#BF0000] .Top = -20[/color]
.Left = 0
.Width = 1200
.Height = 300
End With
End Sub
Bonsoir CAPUCIN,
Peux-tu faire tourner le code en pas à pas et dire quelle ligne plante?
Je t'avouerais que dans le code envoyé, je suis extrêmement surpris d'un code du genre
<span style="color: #BF0000"> .Top = -20</span>
Excel c'est du VBA pas du PHP/HTML.... ça ressemble à un copier/coller raté d'Internet
Semble nettement plus correcte.With ActiveWindow
.Top = -20
.Left = 0
.Width = 1200
.Height = 300
End With
Salut! non ce n'est pas un copier coller d'internet, la ligne bizarre c'est parce que j'ai cliquer sur le bouton couleur et ca n'a pas fait ce que je voulais.
Le code est exactement ce que je roulais sur mon ancien PC et a ma grande surprise, j'ai quelques erreur sur mon nouveau PC. La premiere ligne en erreur est .Top=-20. Si je passe ma souris sur ca ca indique -23 et le left -5.75, j'imagine que c'est parce que la ligne en question n'est pas encore executer. Mais ces valeurs sont tout de meme bizarre.
With ActiveWindow
.Top = -20
.Left = 0
.Width = 1200
.Height = 300
End With
Toutes mes excuses mais cette balise survenait pile à l'endroit problématique
Question stupide mais as-tu testé ton code avec
Windows("LOGICIEL 60.xls").Activate
au lieu de
Windows("LOGICIEL 60.xls:1").Activate
?
En mettant un point d'arrêt et un espion sur ActiveWindow, l'objet est bien défini?
(Si tu peux joindre le fichier excel ce serait super)
j'aimerais bien t'envoyer tout ca, mes mon fichier est d'environ 800k et il ouvre une application non excel. De plus, j'ai des setting qui modifierais surement ton environnement a l'ouverture.
Ce que tu me suggere se trouve plus bas que l'erreur donc je doute que ca change quelque chose.
Je dois te dire que je ne suis pas tres bon en VBA malgre la complexite de mon code. C'est que j'ai eu beaucoup d'aide dans le passe, si non je n'y serais pas arrive.
L'impression que j'ai c'est que la resolution de mon nouveau PC ainsi que windows10 me cause ces problemes. J'ai mis au point mon application avec windows xp. D,ailleurs a l'ouverture la grandeur des fenetres n'est plus bonne.
Peux-tu tenter le code suivant, qui est à coller juste avant les "With ActiveWindow"
ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlTiled
Sub twowindows2() 'Utilise dans mode Debug et Simulateur.Ce sub doit etre ici car on vise 2 feuilles differentes
Application.DisplayFullScreen = False
Application.ScreenUpdating = False
Sheets("ASS compile").Select
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.NewWindow
Sheets("EPE").Select 'XLS:2
Rows("3:3").Select
ActiveWindow.FreezePanes = True
Range("A3").Select
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlTiled
With ActiveWindow 'fenetre EPE
.Top = 280
.Left = 0
.Width = 1200
.Height = 260
End With
'ActiveWindow.zoom = 80
Windows("LOGICIEL 60.xls:1").Activate 'fenetre principale
ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlTiled
With ActiveWindow
<span style="color: #BF0000"> .Top = -20</span>
.Left = 0
.Width = 1200
.Height = 300
End With
End Sub
maintenant, ca fonctionne
Si je continu dans mon application, j'arrive maintenant a une erreur lorsque mon userform envoi le sendKey F1, par l'entremise d'un bouton. Pourtant si je fait un f1 directement pas le clavier ca marche. On dirait que SendKeys (F1) n'est pas reconnu.
'<START>
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SPflag = False
AppActivate "Z80 Simulator IDE" 'necessaire pour l'envoie de touches racourcis
Sleep 30
SendKeys "{F1}", True
Set object1 = CreateObject("z80simulatoride.server") 'necessaire egalement pour module6
object1.z80reset
Sheets("EPE").Cells(2, 117) = "'" & Dec2Hex((object1.getpc()), 4) 'recupere le P.C. de la premiere instruction, au cas qu'elle ne serais pas 0000 "option/change starting adress"
AppActivate "Microsoft Excel"
Windows("LOGICIEL 60.xls:2").Activate
numero = 1
simulateur
UserForm5.CommandButton2.SetFocus
End Sub
J'ai seulement utilisé Google, mais mon hypothèse est la suivante:
- Windows XP -> les fenêtres ne sont pas "magnétiques", elles ne s'adaptent pas en dimension à ton écran
- Windows vista et + -> les fenêtres s'adaptent à ton écran. Résultat, l'utilisation de cette commande
Pour le problème des sendkeys, -> Google t'aidera surement. Perso je n'utilise jamais
Issue excel sendkey windows 10
Parfait je ferai une recherche.
En terminant crois-tu que je pourrais mettre cette commande egalement ailleur comme dans thisworkbook.
Le meilleur moyen de savoir est de tester haha
Je ne vais pas m'avancer j'en ai aucune idée ^^
Merci pour ton aide.