Anzeige
Archiv - Navigation
1316to1320
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
Textfeld auslesen
15.06.2013 17:32:11
Dani
Hallo zusammen
Ich habe folgendes Problem:
In etwa 150 Dateien ist immer je ein Textfeld (Textfeld 2) mit dem Namen und der Adresse. Nun möchte ich dieses Textfeld auslesen und den Inhalt in die darunterliegenden Zellen schreiben.
Zur Vereinfachung habe ich mal eine Vorlagendatei beigefügt.
https://www.herber.de/bbs/user/85843.xlsx
Tabelle 1 entspricht dem Original und so wie in Tabelle 2 hätte ich es nach dem auslesen des Textfeldes gern.
Um das ganze für mich etwas zu vereinfachen wäre es noch Super, wenn das ganze über einen Shortcut ansprechbar wäre.
Danke schon mal für eure Hilfe
Gruess Dani

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

Betreff
Datum
Anwender
Anzeige
AW: Textfeld auslesen
15.06.2013 21:10:01
Beverly
Hi Dani,
wenn das Textfeld in allen zu bearbeitenden Tabellenblättern "Textfeld 2" heißt und absolut genau so aufgebaut ist wie im Beispiel (2 Zeilenumbrüche zwischen Anrede und Namen und Namen und Straße sowie mehreren Leerzeichen zwischen Straße und PLZ/Ort, dann kannst du das mit folgendem Code machen:
Sub TextFeld()
Dim strInhalt
With ActiveSheet.Shapes("Textfeld 2")
strInhalt = Split(.OLEFormat.Object.Text, Chr(10))
End With
Range("H7").Resize(UBound(strInhalt) + 1, 1) = Application.Transpose(strInhalt)
Range("H10") = LTrim(Right(Range("H9"), InStrRev(Range("H9"), " ") - 6))
Range("H9") = RTrim(Application.Substitute(Range("H9"), Range("H10"), ""))
End Sub
Schreibe den Code in ein allgemeines Modul in deine PERSONAL.xlsb und rufe es im Register Entwicklertools -&gt Befehlsgruppe: Code -&gt Schalter: Makros auf.
Achtung: im Code ist keine!!! Fehlerbehandlung enthalten, ob das Textfeld 2 wirklich vorhanden ist und ob der Text tatsächlich den o.g. Vorgaben entspricht - sollte das nicht der Fall sein, löst der Code eine Fehlermeldung aus.


Anzeige
AW: Textfeld auslesen
17.06.2013 11:10:38
Dani
Hallo Karin
Vielen Dank für deine Hilfe. Dein Code arbeitet super, jedoch wenn die Adresse länger ist, dann _ trennt er am "falschen" Ort. Ich habe den Code mal wie folgt abgeändert

Sub TextFeld()
Dim strInhalt
With ActiveSheet.Shapes("Textfeld 2")
strInhalt = Split(.OLEFormat.Object.Text, Chr(10))
End With
Range("H7").Resize(UBound(strInhalt) + 1, 1) = Application.Transpose(strInhalt)
Range("H10") = LTrim(Right(Range("H9"), InStrRev(Range("H9"), " ") - 20))
Range("H9") = RTrim(Application.Substitute(Range("H9"), Range("H10"), ""))
End Sub

Dies führt jedoch zu einer Fehlermeldung und zwar genau dann wenn ich hier
Range("H10") = LTrim(Right(Range("H9"), InStrRev(Range("H9"), " ") - 20))

den Wert höher als -14 setze. Es gibt jedoch auch Adressen mit mehr als 15 Zeichen und dann kommt erst die Hausnummer.
Wie muss ich den Code abändern, damit es trotzdem klappt?
Danke schon mal im Voraus
Gruss Dani

Anzeige
AW: Textfeld auslesen
17.06.2013 11:22:54
Beverly
Hi Dani,
ändere diese Zeile wie folgt:
   Range("H10") = LTrim(Right(Range("H9"), Len(Range("H9")) - InStrRev(Range("H9"), "  ")))


AW: Textfeld auslesen
17.06.2013 11:37:37
Dani
Sali Karin
Danke für die schnelle Antwort. Habs gerade ausprobiert. Leider schreibt er jetzt die Adresse in Zelle H10 anstelle H9 und die PLZ und Ort (H10) bleiben komplett weg :-(
Gruess Dani

AW: Textfeld auslesen
17.06.2013 11:43:14
Beverly
Hi Dani,
kann ich leider nicht nachvollziehen. Da musst du schon mal ein betreffendes Beispiel hochladen.


Anzeige
AW: Textfeld auslesen
17.06.2013 12:00:36
Beverly
Hi Dani,
in meinem ersten Antwortbeitrag hatte ich geschrieben, dass der Code nur funktioneren kann, wenn alle Textfelder identisch aufgebaut sind - so wie in deinem ersten hochgeladenen Beispiel: 2 Zeilenumbrüche zwischen Anrede und Namen und Namen und Straße sowie mehreren Leerzeichen zwischen Straße und PLZ/Ort.
Das ist in dem jetzt hochgeladenen Beispiel nicht mehr der Fall - zwischen Adresse und PLZ/Ort sind jetzt keine Leerzeichen sondern ebenfalls ein Zeilenumbruch. Es ist also kein Wunder, dass der Code nicht mehr das macht was er mit deinem andern Textfeld korrekt gemacht hat. Folglich stellt sich die ganz konkrete Frage: wie sind deine Textfelder denn nun tasächlich aufgebaut? Gibt es mehrere Varianten und wenn ja - welche noch, außer den bisherigen?


Anzeige
AW: Textfeld auslesen
20.06.2013 13:57:15
Dani
Hallo Karin
Sorry das war mein Fehler :-(
Natürlich klappt der Code mit der neuen Änderung perfekt. Habe selbst am Textfeld "herumgespielt" und deshalb waren die Leerzeichen und der neue Zeilenumbruch drin. Habe es mit der Originaldatei nochmals probiert und alles ist perfekt.
Danke nochmals für deine Hilfe und deine Nachsicht ;-)
Gruess Dani
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige