Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1440to1444
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
Inhaltsverzeichnis

Unterschiedliche Formate in einem String

Unterschiedliche Formate in einem String
09.08.2015 03:34:40
Dominik
Moin Leute,
ich hab ein kleines Problem. Ich habe bzw bin dabei ein Programm zur einfachen Formatierung von chemischen Formeln zu schreiben. Ich habe vor einem halben Jahr bereits so ein Programm geschrieben. Leider war das auf meinem alten Rechner und ich war einfach zu faul das Programm auf die neue Festplatte zu ziehen. Aber jetzt zu meinem Problem. Ich habe ne Maske in die ich die einzelnen Teile der Formel rein schreibe (BSP [H 2 S O 4] in fünf Zellen). Über drei Buttons kann ich jetzt entscheiden wie ich den Teil formatieren möchte, sprich hochgestellt, tiefgestellt oder normal. In meiner "Ergebnis"-Zelle habe ich dann die gesamte Formel stehen (BSP [H2SO4]. Soweit so gut. Soooooo. Jetzt müsste ich die Formate der einzelnen Zellen auf die entsprechenden Ziffern in der fertigen Formel übertragen. Hier beginnt mein Problem. Ich hatte damals mal nen Algorithmus geschrieben mit dem das kein Problem war. Der Algorithmus war nur 5/6 Zeilen lang. Ich habe allerdings leider keinen Schimmer mehr wie das war. Ich weiß nur noch, dass es mit len() für die Länge des Strings und mid() für die Positionen der Zifferm zu ermitteln war. Die einzige Lösung die mir momentan nochmal einfällt wäre die Länge der Strings in den einzelnen Zellen zu ermitteln und dann über die left() Funktion die Postion der Ziffern zu ermitteln. Das dauert bei knapp 30 Zellen leider etwas länger ;-D um genau zu sein zu lang.
Wenn einem von Euch was einfällt wäre ich Euch sehr dankbar mir eine Lösung oder einen Lösungsvorschlag zu unterbreiten
https://www.herber.de/bbs/user/99429.xlsx (Screenshot der Maske)
Grüße und Danke schonmal im Vorraus
Dominik

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschiedliche Formate in einem String
09.08.2015 07:54:34
Sepp
Hallo Dominik,
was sollen wir mit dem Screenshot anfangen? Warum lädst du nicht die Datei mit der Maske hoch?
Gruß Sepp

AW: Unterschiedliche Formate in einem String
09.08.2015 17:26:11
Dominik
Gibt bisher nicht viel dran rumzuspielen ;-) Aber hier ist sie soweit
Ich habe, ums Euch leichter zu machen die ganzen Begrenzungen wie Scrollarea rausgeholt. Könnte beim Experimentieren hinderlich sein

Die Datei https://www.herber.de/bbs/user/99442.xlsm wurde aus Datenschutzgründen gelöscht


Grüße Dominik

Anzeige
AW: Unterschiedliche Formate in einem String
09.08.2015 20:21:43
Dominik
Vielen Dank erstmal für die schnelle Lösung allerdings funktioniert diese nur wenn man immer nur einen Buchstaben oder eine Ziffer eingibt. Bei einer Formel wie C6H12O6 oder Fe2O3 wird bei der "kritischen Stelle" jeweils nur der erste Buchstabe bzw die erste Ziffer richtig formatiert danach ist alles um eins verschoben.
Grüße Dominik

Anzeige
AW: Unterschiedliche Formate in einem String
09.08.2015 20:24:07
Sepp
Hallo Dominik,
genau das hast du gefordert!
"Ich habe ne Maske in die ich die einzelnen Teile der Formel rein schreibe (BSP [H 2 S O 4] in fünf Zellen)"
Gruß Sepp

AW: Unterschiedliche Formate in einem String
09.08.2015 23:41:40
Dominik
Das stimmt :-D ich konnte schriftlich noch nie gut beschreiben was ich meine :-) Ich werde mal schauen ob ich das ganze in den nächsten Tagen nochmal zusammen gebastelt bekomme. Falls ja schreib ich hier nochmal nen Post rein.
Grüße Dominik

AW: Unterschiedliche Formate in einem String
11.08.2015 04:38:30
fcs
Hallo Dominik,
hier das angepaßte Makro "Ergebnis" in der Datei von Sepp, so dass das Format in den Einzelnen Zellen in die Ergebnis-Zelle übernommen wird.
Gruß
Franz
Sub ergebnis()
Dim lngCol As Long, lngCount As Long
Dim strTmp As String
For lngCol = 4 To 37
If Cells(5, lngCol) = "" Then Exit For
strTmp = strTmp & Cells(5, lngCol).Text
Next
With Range("AO5")
.Font.Superscript = False
.Font.Subscript = False
.Value = strTmp
If Len(strTmp) Then
strTmp = ""
For lngCol = 4 To 37
If Cells(5, lngCol) = "" Then Exit For
lngCount = Len(Cells(5, lngCol).Text)
If Cells(5, lngCol).Font.Superscript = True Then
.Characters(Len(strTmp) + 1, lngCount).Font.Superscript = True
ElseIf Cells(5, lngCol).Font.Subscript = True Then
.Characters(Len(strTmp) + 1, lngCount).Font.Subscript = True
End If
strTmp = strTmp & Cells(5, lngCol).Text
Next
End If
End With
End Sub

Anzeige
AW: Unterschiedliche Formate in einem String
14.08.2015 22:12:40
Dominik
Ja, tut mir leid hatte Deine Nachricht gar nicht gesehen. Das ist es was ich gesucht habe. Funktioniert. Danke
Grüße Dominik

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige