Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Positionierung Inputbox
#1
Servus,
ich hatte anhand der Syntax einer Inputbox gehofft, das Eingabefenster zentriert positionieren zu können indem ich folgenden Code nutze:

Code:
nAbt = Application.InputBox("Bitte Wert zuweisen!", , , Me.Width / 2, Me.Height / 2)
Abgesehen davon, dass die Hälfte der Breite/Höhe der UserForm als Eckpunkte für die Inputbox nicht 100% zentriert liegen passiert einfach gar nichts und die Box wird wie zuvor am linken Bildschirmrand geöffnet. Kann mir jemand sagen wieso?
Gruß
Antworten Top
#2
Moin!
Mit diesem Code-Snippet kann ich wenig anfangen, da ich nicht erkenne, was in diesem Fall Me ist.

Persönlich kenne ich dieses Problem bei Verwendung eines zweiten Bildschirms.
Eine Möglichkeit:
Nutze ein kleines UserForm mit nur einer TextBox und positioniere sie wie folgt im UserForm_Initialize

Me.Top = (Application.Height - Me.InsideHeight) / 2
Me.Left = (Application.Width - Me.InsideWidth) / 2

Dann ist sie definitiv exakt in der Mitte von Excel.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hey, danke erst einmal. Das wäre natürlich eine Alternative, gäbe es auch eine um es mit einer Inputbox zu realisieren statt einer weiter Userform?

Code:
nAbt = Application.InputBox("Bitte Wert zuweisen!", , , UserForm1.Width / 2, UserForm1.Height / 2)

Auch das funktioniert nicht. Huh
Antworten Top
#4
Dann teste mal das.
Ich gehe von Windows als Betriebssystem aus.

Modul Modul1
Option Explicit 
 
Private Const SM_CXSCREEN = 0 
Private Const SM_CYSCREEN = 1 
Private Declare Function GetSystemMetrics Lib "user32" _
  (ByVal nIndex As Long) As Long 
 
Sub RPP() 
Dim MeinText 
  MeinText = Application.InputBox("Bitte Wert zuweisen!", , , _
    Int(GetSystemMetrics(SM_CXSCREEN) / 2), _
    Int(GetSystemMetrics(SM_CYSCREEN) / 2)) 
End Sub 
 

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Hallo Fupi,

1.: die Breite und Höhe der UF ist erst einaml uninteressant. Vielmehr wird die linke und obere Seite benötigt. Und das (an meinem Bildschirm noch mal 20):
2.: anscheinend wird die Positionierung der Application.InputBox ab E2007 nicht mehr unterstützt. Siehe https://www.experts-exchange.com/questio...l-VBA.html , letzter Beitrag von Jon Peltier.

Mit InputBox (also der InputBox-Methode) ginge es so in der Art:
nAbt = InputBox("Hallo", , , Me.Left * 20 + 500, Me.Top * 20 + 500)
Gruß Uwe
Antworten Top
#6
Danke für die Rückmeldung, das Fenster bleibt aber an Ort und Stelle. Undecided
Antworten Top
#7
(20.06.2017, 08:30)Fupi schrieb: Danke für die Rückmeldung, das Fenster bleibt aber an Ort und Stelle. Undecided

Das ist dann Pech für das Fenster.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste