messen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Frame ToggleButton TextBox MsgBox
Bild

Betrifft: messen
von: stef26
Geschrieben am: 29.06.2015 09:49:59

Hallo Zusammen,
man kann ja von Objekten den Ort bestimmen.
Worksheets("Skizze").Shapes("Messpunkt").Left
Worksheets("Skizze").Shapes("Messpunkt").Top
Gibt es die Möglichkeit den Ort eines Mausklickes zu erfassen.
Ich möchte über ein Macro einmal den Ort des Mauszeigers erfassen, wenn die Maustaste gedrückt wurde. Dann nochmal. Nun soll er die Differenz der beiden
Werte ermitteln (Messen zwischen zwei Punkten) und diesen in einer MsgBox ausgeben.
Ist so was möglich ?
Wenn ja wie kann ich das umsetzen?
Falls jemand so was schon mal gesehen hat...
Liebe Grüße
Stefan

Bild

Betrifft: AW: messen
von: Nepumuk
Geschrieben am: 29.06.2015 10:04:07
Hallo,
innerhalb eines Shapes?
Gruß
Nepumuk

Bild

Betrifft: AW: messen
von: stef26
Geschrieben am: 29.06.2015 10:35:46
Hallo Nepumuk,
nein nicht innerhalb eines shapes.
Ich möchte lediglich auf dem Tabellenblatt 2x mit der Maus klicken (wenn das Makro gestartet wurde) und mir die Differnz left und top anzeigen lassen
:-)
Gruß
Stefan

Bild

Betrifft: AW: messen
von: selli
Geschrieben am: 29.06.2015 10:38:40
hallo stef26,
Falls jemand so was schon mal gesehen hat...
ja, in der recherche. stichwort könnte "mausposition" lauten
gruß
selli

Bild

Betrifft: AW: messen
von: Daniel
Geschrieben am: 29.06.2015 11:18:45
Hi
1. Erstelle auf dem Blatt einen ToggleButton aus den ActiveX-Steuerelementen.
2. Schreibe in das MouseUp-Event des Toggelbuttons folgenden Code:

Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
Static x1 As Single
Static y1 As Single
If Not ToggleButton1 Then
    x1 = X
    y1 = Y
Else
    MsgBox "Delta X: " & X - x1 & vbLf & "Delta Y: " & Y - y1
End If
ToggleButton1 = Not ToggleButton1
End Sub
um eine Messung durchzuführen machst du folgendes:
- Togglebutton anklicken, linke Maustaste gedrückt halten und zum ersten Messpunkt fahren, am Messpunkt Maustaste loslassen
- Vorgang für zweiten Messpunkt wiederholen, dannach wird die Differenz angezeigt.
am Zustand des Togglebuttons siehst du , ob du die erste oder zweite Messung durchführst
Gruß Daniel

Bild

Betrifft: AW: messen
von: stef26
Geschrieben am: 29.06.2015 12:53:13
Hallo Daniel,
genau das hab ich gesucht.
Hab den Toggle Button eingefügt und unter MouseUp den code hinterlegt.
Entwurfmodus aus gemacht...
Aber es tut sich nichts ???
Was mache ich falsch?
Gruß
Stefan

Bild

Betrifft: AW: messen
von: stef26
Geschrieben am: 29.06.2015 12:54:43
sorry funktioniert danke
hab mich nur doof angestellt
:-)
Stefan

Bild

Betrifft: Erweiterung mit Pfeil
von: stef26
Geschrieben am: 29.06.2015 20:12:21
Hallo Daniel,
ich glaub ich brauch nochmal deine Hilfe.
Hab ein bisschen mit dem Macrorecorder rumgespielt.
Würde gerne einen Messpfeil mit Wert einfügen (gruppiert)
Bring das aber nicht sauber hin....
Hier der Code

Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Static x1 As Single
Static y1 As Single
If Not ToggleButton1 Then
    x1 = X
    y1 = Y
Else
X = Round(X, 2)
Y = Round(Y, 2)
    MsgBox "Delta X: " & (X - x1) / 2 & " cm" & vbLf & "Delta Y: " & (Y - y1) / 2 & " cm"
    
    'Pfeil Zeichnen
        ActiveSheet.Shapes.AddConnector(msoConnectorStraight, X, _
        Y, x1, y1).Select
        Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle
        Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
        
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 200, _
        80, 50, 37).Select
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = (X - x1)/2 & " cm"
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 3).ParagraphFormat. _
        FirstLineIndent = 0
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 3).Font
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1
        .Fill.ForeColor.TintAndShade = 0
        .Fill.ForeColor.Brightness = 0
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 11
        .Name = "+mn-lt"
    End With
           
        
End If
ToggleButton1 = Not ToggleButton1
End Sub



Bild

Betrifft: AW: Erweiterung mit Pfeil
von: Daniel
Geschrieben am: 30.06.2015 16:28:48
Hi
die X- und Y-Werte die du von der MouseUp-Funktion bekommst, haben ihren 0-Punkt in der linken oberen Ecke des Togglebuttons.
Damit du deinen Pfeil richtig auf dem Blatt einzeichnen kannst, musst du noch den .Top-wert des Buttons zu Y / Y1 und den .Left-wert des Buttons zu X / X1 hinzuaddieren.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zelle von Schaltfläche in Tabellenblatt ermitteln"