online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Player1987 vom 17.10.2019, 13:32 Options

Excel Makro Wert erkennen und entsprechend kopieren

Hallo,
also ich beschreibe euch mein Problem.
Ich habe hier in der Schule mehrere Messreihen gemacht welche in Excel gespeichert wurden und jetzt muss ich diese sortieren.
Der Ordnerinhalt um den es geht sieht folgendermasen aus.

data.xls
a.xls
aa.xls
...
bf.xls
...

das sind ca. 200 Dateien.
Die Datei "data.xls" ist die Masterdatei, in diese sollen die Werte aus den anderen .xls Dateien jkopiert werden.
Diese data.xls besteht aus 5 Tabellenblättern (Typ1; Typ2; Typ3; Typ4; Typ5)

Die anderen .xls Dateien haben einen völlig beliebigen Dateinamen, aber da ich eh alle Dateien aus diesem Ordner nehmen muss ist der Dateiname ja egal denke ich.

In jeder dieser xls. Dateien muss die Zelle B6 ausgelesen werden, denn sie bestimmt in welches Tabellenblatt der data.xls Datei die Werte aus dieser xls. Datei hin kopiert werden sollen.

Also als Beispiel.
eine beliebiege xls. Datei hat bei B6 den Wert 3.
Dann sollen die Zellen C10-C15 und D10-D15 in die data.xls ins Tabellenblatt Typ3 hinenkopiert werden und untereinander aufgelistet werden.

Wichtig ist noch das es nicht immer C10-C15 und D10 und D15 sind.
bei Typ4 ist es C11-C16 und D11-D16.

also wenn mir da jemand sagen kann wie das geht, das würde mir wirklich richtig weiterhelfen.
Vielen vielen Dank


Antwort schreiben

Antwort 21 von coros vom 22.10.2019, 09:51 Options

Hallo Player,

ich gehe mal davon aus, dass diese bereits in der Textdatei in Anführungszeichen stehen und wahrscheinlich aussagen, dass es sich um Textwerte handelt. Dann musst Du den Wert vorher mit Instr() auf diese Zeichen prüfen. Das sehe dann ungefähr so aus:

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche

[b]Option Explicit

Sub Wandeln()
If InStr(Range("A1"), """") > 0 Then
MsgBox Mid(Range("A1"), 2, Len(Range("A1")) - 2)
Else
MsgBox Range("A1")
End If
End Sub[/b]


In diesem Beispiel wird die Zelle A1 auf die Anführungszeichen "" geprüft. Wenn Instr() einen Wert größer dem Wert 0 zurückgibt, werden durch die Mid-Funktion das 1. und letzte Zeichen herausgefiltert und hier in einer Messagebox aufgeführt. Wenn nicht, wird der ganz normale Wert aus Zelle A1 in der Messagebox aufgeführt. teste das mal. Gebe einmal "Test" und einmal nur Test, also ohne die Anführungszeichen "" ein. Du wirst dann immer den Wert Test in der Messagebox erhalten.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 22 von Player1987 vom 22.10.2019, 10:03 Options

Hi,
nein also in der exeldatei selber sind die anfürungszeichen nicht da.
auch wenn ich die txt datei mit dem excel öffne sind sie nicht da.
nur wenn ich die txt datei mir notepad bzw editor öffne, dann steht vor und hinter manchen zeilen ein "zahlenwert".
gibt es ne möglichkeit die "" per batch datei weg zu bekommen?
dann mässte ich das nicht in excel einbinden.
also ich möchte einfach alle "" per batch entfernen.
ist ja quasi nur suchen ersetzten und "" durch nichts ersetzen. das müsste doch eghen oder

Antwort 23 von coros vom 22.10.2019, 10:24 Options

Hallo Player,

das die in Excel, wenn Du die Datei öffnest, nicht das sind ist mir schon klar. Diese Zeichen sagen mit ziemlicher Sicherheit aus, dass es sich um Textwerte handelt. Beim Öffnen der Datei in Excel werden diese Zeichen nicht mit importiert, sondern interpretieren eben, dass es sich um Textwerte handelt und formatieren die Zelle automatisch als Text. Das funktioniert aber zum Teil nicht, wenn diese Daten via Makro importiert werden. Daher mein Vorschlag mit dem Beispielmakro.

Ob das über eine Batchdatei geht, kann ich Dir nicht sagen, da DOS nicht gerade mein Spezialgebiet ist.

Frage mich nur, warum Du das nicht in VBA realisieren möchtest?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 24 von Player1987 vom 22.10.2019, 10:48 Options

wie muss ich den code von dir einfügen er muss es für die spalten A1 bis A28 machen.
Wäre nett danke und Gruss

Antwort 25 von coros vom 22.10.2019, 10:57 Options

Hallo Player,

das würde dann wie folgt aussehen.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche

[b]Option Explicit

Sub Wandeln()
Dim Zelle As Range
Application.ScreenUpdating = False
For Each Zelle In Range("A1:A28")
If InStr(Zelle, """") > 0 Then
Range(Zelle.Address) = Mid(Zelle, 2, Len(Zelle) - 2)
Else
Range(Zelle.Address) = Zelle
End If
Next
End Sub[/b]


Hier werden Dir im Bereich A1:A28 die Anführungszeichen gelöscht.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ähnliche Themen

Excel Makro erscheint nicht in Makroliste
H.E.N.K  01.02.2007 - 218 Hits - 1 Antwort

Makro: Zellen mit Inhalt erkennen und kopieren
CBundy  07.05.2007 - 128 Hits - 4 Antworten

Formaln kopieren
networker///  12.07.2007 - 63 Hits - 5 Antworten

Kontrollkästchen
Rudi81  12.10.2007 - 134 Hits - 7 Antworten

Daten aus Excel nach Word kopieren, mit VBA
Saarbauer  07.11.2008 - 468 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026