Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Bereich in array kopieren

Bereich in array kopieren
02.01.2020 23:13:06
Barbara
Hallo
habe Fragen zum array. In meinem Beispielmakro werden erst A1:A3 befüllt, um mal eine Versuchsanordnung herzustellen (für alle, die keine Datei mit Makros aus dem Internet öffnen wollen).
Dann wird dieser Bereich über ein array in den Nachbarbereich B1:B3 kopiert. Dabei wird seltsamerweise auch das Format der Zelle B1 mitkopiert, für C1 aber nicht.
Warum wird das Format von B1 mitkopiert? Im Array selbst ist nichts von einem Format zu sehen.
Hier das Makro
Sub Zahlenformat()
Dim sFeld()
Dim rBereich As Range
Set rBereich = Range("A1:A3")
rBereich.Clear
rBereich.Offset(0, 1).Clear
'Zellen A1:A3 werden befüllt
rBereich(1) = 3
rBereich(1).NumberFormat = "General"
rBereich(2) = 3
rBereich(2).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
rBereich(3) = 43557
rBereich(3).NumberFormat = "yyyymmdd"
'Ende der Vorbereitung
ReDim sFeld(3)
sFeld = rBereich
rBereich.Offset(0, 1) = sFeld
'    sFeld = rBereich.NumberFormat  ---> Das geht leider nicht
End Sub
LG,
Barbara

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich in array kopieren
03.01.2020 05:51:13
Luschi
Hallo Barbara,
das Array übernimmt für jeden Zellenwert nur den Standarddatentyp für Zahl, Währung und Datum.
Ändere mal den Wert/Formatierung in A2 so:
rBereich(2) = -3
rBereich(2).NumberFormat = "$#,##0.000_);[Red]($#,##0.0000)"
dann siehst Du, daß in A2 die negative Zahl in Klammern und ohne Minuszeichen mit
4 Nachkommastellen und in rot dargestellt wird.
In B2 steht aber: -3,00 € - nix rot, keine Klammern, nur 2 Nachkommastellen
Eben nur der in Windows/Excel definierte Standard.
Gruß von Luschi
aus klein-Paris
PS: Schalte im Vba-Editor das Überwachungsfenster ein (Ansicht-Überwachungsfenster,
markiere sFeld im Vba-Code, rechte Maustaste, Überwachung hinzufügen
Dann kann man im Einzelschrittmodus (F8-Taste) nachvollziehen, was im/mit dem Array passiert.
Anzeige
AW: Bereich in array kopieren
03.01.2020 11:43:03
Barbara
Hallo Luschi,
danke für Deine Antwort.
Tatsächlich: im Überwachungsfenster bei jdem Feldeintrag auch der Standarddatentyp notiert. Das habe ich nicht gesehen.
Kann man den auch irgendwie in sFeld abrufen und dort vielleicht auch ändern?
AW: Bereich in array kopieren
03.01.2020 21:54:28
onur
sFeld ist eine Variable und befindet sich im Speicher.
rBereich ist ein Bereich, der sich auf der Excel-Tabelle befindet (eigentlich mehr eine Spiegelung des Bereiches auf der Tabelle, mitsamt aller seiner Eigenschaften).
Bereiche und Zellen haben Eigenschaften wie Zellformat, Hintergrund- und Schriftfarbe usw.
Aber Variablen wie sFeld haben keine solchen Eigenschaften, nur Inhalte.
Anzeige
AW: Bereich in array kopieren
03.01.2020 22:24:37
Barbara
OK. Aber im Inhalt des Arrays muss wohl auch die Formatierung stehen, denn sie wird ja bei
rBereich.Offset(0, 1) = sFeld
mitübertragen.
Darauf bezieht sich meine letzte Frage.
AW: Bereich in array kopieren
04.01.2020 22:18:36
onur
Wenn du das glaubst, dann formatiere B1 doch mit "$#,##0.00_);[Red]($#,##0.00)" (tausche Formatierung von A1 und A2) und schaue, was passiert.
AW: Bereich in array kopieren
05.01.2020 00:13:31
Barbara
Hab ich gemacht. Dann sind eben die Zeilen 1 und 2 vertauscht, was die Formatierung betrifft.
Mit dem Einfügen des Arrays wird auch die Währungsformatierung eingefügt.
Ich weiß nicht genau, was Du damit sagen willst.
AW: Bereich in array kopieren
05.01.2020 00:15:23
onur
Seltsam - kannst du die (Beispiels-)Datei posten?
Anzeige
AW: Bereich in array kopieren
05.01.2020 00:26:39
Barbara
Warum Beispieldatei?
Nimm ein leeres Excel-Sheet, kopieren meine Code rein und lass ihn einmal durchlaufen.
Aber bitte, hier die Datei. Vielleicht liegt da wirklich der Hund begraben.
AW: Bereich in array kopieren
05.01.2020 00:27:15
onur
Wo?
AW: Bereich in array kopieren
05.01.2020 00:30:58
Barbara
Sorry, hat irgendwie nicht funktioniert. Aber das Hochladeformular sieht jetzt ganz anders aus.
Hier der Link:
https://www.herber.de/bbs/user/134164.xlsm
LG,
Barbara
AW: Bereich in array kopieren
05.01.2020 01:00:34
onur
Jetzt weiss ich, was du meinst.
Wie gesagt werden (geht ja auch nicht) Formate NICHT mitkopiert. Da Date und Currency eigene Variablentypen sind und sFeld automatisch als Variant dimensioniert wird (da nix angegeben), sieht es nur so aus, als ob die Formate mitkopiert wurden, da das Datum als Date und die Währung als Currency erkannt und so im Array abgespeichert werden.
Du verwechselt da Datentyp mit Zellformat.
Hier siehst du es besser:
https://www.herber.de/bbs/user/134165.xlsm
Anzeige
AW: Bereich in array kopieren
05.01.2020 17:07:48
Barbara
Damit
"Du verwechselt da Datentyp mit Zellformat."
wird alles klar.
Jetzt verstehe ich Dich (und auch Luschi aus Klein-Paris).
Damit kann ich an meinem eigentlichen Problem arbeiten. Hab dazu im Forum eine neue Frage gestellt.
Danke Euch.
LG, Barbara

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige