Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu Strings und Shapes

Frage zu Strings und Shapes
08.07.2008 15:11:00
Jan
Hallo,
gibt es bei bei Excel die möglichkeit per VBA das letzte und vorletzte Zeichen eines Strings auszulesen? bzw. allgemein Strings zu zerflücken?
und gibt es eine möglichkeit, wenn man bei den Shapes den Top-Punkt hat, zu ermitteln ob es der Rechte oder Linke Punkt der Linie ist?
MfG Jan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Strings gelöst, Problem mit Shapes Toppunkt
08.07.2008 15:44:00
Jan
Hallo, das mit den Strings konnte ich lösen, allerdings habe noch das Problem mit dem Toppunk.t

AW: Strings
08.07.2008 15:45:00
AK
Hallo Jan,
Du kennst doch sicherlich in Excel die Funktionen RECHTS und LINKS, die gibt es auch in VBA, heißen dort Right und Left, funktionieren aber genauso. Beispiel:
Range("B1") = Right(Range("A1"), 1)
in Zelle B1 wird das letzte Zeichen aus Zelle A1 geschrieben.
Mit der Funktion Mid kannst Du eine bestimmte Anzahl an Zeichen ab einem Startzeichen auslesen. Beispiel:
Range("C1") = Mid("Hallo", 2, 3)
In C1 steht nun "all".
Hilft Dir das weiter?
Gruß
Andreas

Anzeige
AW: Strings
08.07.2008 16:07:25
Jan
Hallo,
das mit den Strings habe ich herausbekommen mit dem Mid-Befehl.
Danke :)
Nun hab ich das Problem mit dem Shape-Top-Punkt

AW: Frage zu Strings und Shapes
08.07.2008 15:50:00
Matthias
Hallo Jan
zu 1. schau Dir den Mid Befehl an
zu 2. mE hat .Top nichts mit Links und Rechts zu tun, sondern mit dem Abstand von oben.
(für den Linken Punkt gibt es .Left
Gruß Matthias

AW: Frage zu Strings und Shapes (Inkl. Bild)
08.07.2008 16:05:25
Jan
Danke Matthias!
Allerdings war mir dies bewusst, mir geht es darum, dass ich wissen will, ob der Top-Punkt auch der Left-Punkt ist, oder ob die Gerade einen anderen Left-Punkt hat (Rechte Darstellung im Bild)
http://npshare.de/files/37/5445/top.JPG

Anzeige
AW: Frage zu Strings und Shapes (Inkl. Bild)
08.07.2008 16:18:00
Matthias
Hallo
Dann hast Du mich nicht richtig verstanden.
.Top ist der Abstand von OBEN
und zwar der oberste Punkt des Objektes.
Hast Du eine Linie die absolut waagerecht verläuft,
so hat jeder Punkt dieser Geraden den gleichen .Top-Wert
.Left ist der Linkeste Wert des Objektes.
Hast Du eine Linie die von links unten nach rechts oben verläuft so ist rechts der .Top-Wert
Hast Du eine Linie die von rechts unten nach links oben verläuft so ist links der .Top-Wert
Immer der oberste Punkt des Objektes. Es kommt also darauf an, ob der obere Rand des Objektes absolut waagerecht verläuft oder nicht.
Gruß Matthias

Anzeige
AW: Frage zu Strings und Shapes (Inkl. Bild)
08.07.2008 16:23:00
Jan
Hallo,
ich habe aber keine waagerechten Shapes, sondern "schiefe" Shapes. Wenn die Shapes waagerecht wären, hätten ja beiden den gleichen Y-Wert. Da diese aber "schief" sind, klappt das leider nicht.
MfG Jan

nochmal ...
08.07.2008 16:44:45
Matthias
Hallo Jan
Wie Du selbst nun schreibst, sind Deine Shapes nicht waagerecht, also nochmal:
der oberste Punkt des Shapes hat den .Top-Wert
Userbild
Hoffe es ist jetzt klarer.
Userbild

Anzeige
AW: nochmal ...
08.07.2008 16:47:54
Jan
Hallo Matthias,
ich glaube wir reden aneinander vorbei. Allerdings ist mir gerade eine Lösung eingefallen, in dem ich die Linie um 1 Grad rotieren lassen um dann zu gucken, ob sich die Breite vergrößert, oder verkleinert, um so dann zu ermitteln, wo der "andere" punkt der Geraden liegt. :)
Danke für die Mühen.
MfG
Jan

AW: nochmal ...
08.07.2008 16:57:30
fcs
Hallo Jan,
man kann per VBA die Koordinaten der beiden Endpunkte einer Linie vergleichen, um herauszufinden, wie die Linie verläuft.
Dazu muss man die Nummer oder den Namen des Shapes kennen.
Gruß
Franz
Beispiel:

Sub aatest()
'orientierung aller Linien anzeigen
For i = 1 To ActiveSheet.Shapes.Count
Set objShape = ActiveSheet.Shapes(i)
If objShape.Type = msoLine Then
MsgBox objShape.Name & ": " & OrientierungLinie(objShape)
End If
Next
End Sub
Function OrientierungLinie(ByVal objLinie As Shape) As String
'Orientierung von Linie bestimmen
Dim arrPoint1, arrPoint2, i As Integer
With objLinie
arrPoint1 = .Nodes(1).Points
arrPoint2 = .Nodes(2).Points
If arrPoint2(1, 1) > arrPoint1(1, 1) And arrPoint2(1, 2)  arrPoint1(1, 2) Then
OrientierungLinie = "Top-Rechts"
ElseIf arrPoint2(1, 1) > arrPoint1(1, 1) And arrPoint2(1, 2) > arrPoint1(1, 2) _
Or arrPoint2(1, 1) 


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige