Warum übernimmt das Makro in VBA nicht die benutzerdefinierte Zelle?

...komplette Frage anzeigen

2 Antworten

Range("B19")

übernimmt nur den Wert.

Range("B19").Text
übernimmt auch die Formatierung.
Suboptimierer 28.02.2017, 14:04

Wow! Erschreckend einfach.
Text verwende ich sonst nie.

1
ReinerR21 28.02.2017, 14:05

Super! It works.

Vielen lieben Dank.

0
ReinerR21 28.02.2017, 14:09

Allerdings hätte ich noch eine Frage die etwas schwieriger sein dürfte *grins*

Und zwar habe ich ja jetzt diese Reparaturaufträge, die alle bei mir in einem Ordner landen (offene Reparaturaufträge) nun möchte ich gernne eine neue Excel Datei erstellen, eine Liste die mit externen Daten gefüttert wird. Und zwar mit denen aus den Reparaturaufträgen. Die Liste soll sich von alleine aktualisieren so das ich die gewünschten Werte nicht manuell übertragen muss, rein theoretisch müsste das doch möglich sein oder?

0
Iamiam 28.02.2017, 15:22
@ReinerR21

so schwierig die Frage, so einfach die Antwort: ohne nähere Angaben was und vor allem woher und wohin nicht möglich *grins*

Nächste Frage.

0
ReinerR21 28.02.2017, 16:04
@Iamiam

Nunja es ist so:

Meine Reparaturaufträge haben ja immer einen anderen Namen, z.B 052-AA-17, 052-AB-17, 052-AC-17, 052-AD-17 usw. in diesen Reparaturaufträgen sind folgende Informationen die ich in dieser Liste brauche: Kunde(A18), Abrufnummer(B19), Lieferadresse(A8), Bezeichnung der Baugruppe(A29) und das Einsendedatum(G16).

Nun sollen diese Daten in ein anderes Exceldokument übertragen werden ohne das ich per Hand ergänzen muss. (Die Liste dient der überprüfung)

Nun das neue Exceldokument heißt _GFT_Reparaturauftragsliste

Die Wert aus den Verschiedenen Reparaturaufträgen sollen nun in dieser Liste gesammelt werden, dass heißt also z.B:

In _GFT_Reparaturaufträge sollen jetzt also die Werte aus dem Dokument 052-AA-17 übertragen werden und zwar in folgende Zellen.

  • Abrufnummer Auftrag B19 nach Liste A2
  • Lieferadresse Auftrag A8 nach Liste B2
  • Bezeichnung der Baug. Auftrag A29 nach Liste C2
  • Kunde Auftrag A18 nach Liste D2
  • Einsendedatum G16 nach Liste E2

So und wenn nun in den Ordner der offenen Reparaturaufträge ein neues Dokument kommt, also 052-AB-17, sollen diese Werte in die nächste Zeile, A3, B3 usw übertragen werden.

Ich hoffe ich konnte erklären wie ich das meine.

0
Oubyi 02.03.2017, 13:42

Danke fürs

0

Wo steht denn 052-RS-17 und in welchem Format? Geht es, wenn du 052-RS-17 hart codierst?

Ich greife am liebsten mit Value, bzw. Value2 auf den Wert einer Zelle zu. Es gibt diverse Konvertierungsfunktionen. Kommt auf das Problem an, ob die dir hierbei weiterhelfen.

ReinerR21 28.02.2017, 12:54

hm scheint meine Änderung noch nicht übernommen zu haben.

052-RS-17 steht in der Zelle B19 und trägt ein benuterdefiniertes Format.

Also: "052-"@"-17", so das ich lediglich die beiden Buchstaben RS ergänzen muss damit in der Zelle B19 der Wert 052-RS-17 erscheint, nun übernimmt er mir aber diesen Wert nicht, nur RS. Und das möchte ich nicht.

0
Suboptimierer 28.02.2017, 14:03
@ReinerR21

Direkt den angezeigten Text kann ich auf die Schnelle nicht auslesen. Falls dir eine Krücke reicht, kannst du folgenden Code verwenden:

Function FormatValue(rZelle As Range) As String
  FormatValue = ""
  If InStr(1, rZelle.NumberFormat, "@") Then
    FormatValue = Replace(rZelle.NumberFormat, """", "")
    FormatValue = Replace(FormatValue, "@", rZelle.Value)
  End If
End Function

_______________

Desweiteren könntest du mit Hilfszellen arbeiten, die mittels angelegtem Namen die Funktion ZELLE.ZUORDNEN mit dem Parameter 53 den formatierten Text zurück geben kann.

http://www.herber.de/forum/archiv/1148to1152/1151904_benutzerdefiniertes_Zahlenformat.html

0
Suboptimierer 28.02.2017, 17:18
@Suboptimierer

Kurze Ergänzung für die, die später einmal danach suchen. Excel 4.0 Makros lassen sich wie folgt ausführen:

ExecuteExcel4Macro("GET.CELL(53)")
0

Was möchtest Du wissen?