Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Jahr und Name aus String auslesen

Jahr und Name aus String auslesen
15.10.2015 14:14:48
snuhhh
Hallo zusammen!
Ich habe folgendes Anliegen:
Ich möchte einen Datensatz bestehend aus verschiedenen Daten von Firmen aus verschiedenen Jahren aufbauen. Dafür stehen mir pro Firma eine xls. Arbeitsmappe mit jeweils zwischen 10-12 Jahren an Daten zur Verfügung. Pro Arbeitsblatt in der Mappe sind 2 aufeinanderfolgende Jahre der Firma an Daten vorhanden. Dabei sind die verschiendenen Datenspalten ("Merkmale" im Screenshot) immer gleich, unterscheiden sich aber innerhalb der Jahre durch unterschiedlich viele Zeilen (zwischen 4 und 12 Zeilen pro Jahr/Firma). Für ein besseres Verständnis, hier mal eine kleine Skizze eines Reiters:
http://www.file-upload.net/download-10974109/Beispiel_DL.JPG.html
Um diese Datenzeilen also in eine andere Datei schlüsseln zu können, benötige ich vor jede Zeile 1. eine Spalte mit dem Firmennamen und 2. das entsprechende Jahr; und das über alle Blätter hinweg.
Ich muss also das jeweilige Jahr (D9 im Bsp.) und den Namen (D3 im Bsp.) aus den Zellen auslesen und neben die Zeilen kopieren. Ich denke, dies geht mit regulären Ausdrücken, bin aber ziemlicher Anfänger im VBA-Bereich; vielleicht kann mir jemand hierbei helfen?
Schwieriger sehe ich die Tatsache, dass es pro Jahr nicht immer gleich viele Zeilen gibt. Ich möchte ja, dass das zweite Jahr in einem Reiter in irgendeiner Form erkannt wird, und dort das richtige Jahr steht. (im Beispiel: ab C19 soll 2013 stehen, da hier ja ein neues Jahr beginnt)
Anbei eine Datei mit einem ersten Makro, welches bisher nur in jedem Arbeitsblatt 2 Spalten links hinzufügt, damit hier die Jahres- und Firmenschlüssel hinzugefügt werden können.
https://www.herber.de/bbs/user/100811.xlsm

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Jahr und Name aus String auslesen
16.10.2015 11:20:21
Jack_d
moin moin
Hier mal mein Ansatz auf Basis der Infos die ich ermitteln konnte.
Bei Namen und Jahr orientiert sich die "extraktion" an dem Beispiel.
Als Excel Profi sollte es dir aber dann im Nachgang ein leichtes sein, die logischen Bedingungen für Jahr und Name zu definieren und auszulesen (sofern notwendig)
Grüße
Option Explicit
Sub Spalten_einfügen()
Dim i As Integer
Dim a As Integer
Dim FName As String
Dim FJahr As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
With ActiveWorkbook.Sheets(i)
FName = Mid(.Cells(5, 1), InStr(.Cells(5, 1), ":") + 1, InStr(.Cells(5, 1), ")") -  _
InStr(.Cells(5, 1), ":") - 1)
Columns("A:B").Insert Shift:=xlToRight
For a = 12 To .Cells(Rows.Count, 3).End(xlUp).Row
If Left(.Cells(a, 3), 2) = "FY" Then
FJahr = Mid(.Cells(a, 3), 4, 4)
a = a + 1
End If
Do While Left(.Cells(a, 3), 2)  "FY" And a  "" And Left(.Cells(a, 3), 2)  "FY" And Left(.Cells( _
a, 3), 7)  "Merkmal" Then
.Cells(a, 1) = FName
.Cells(a, 2) = FJahr
End If
Debug.Print a & "-"
Loop
If a = .Cells(Rows.Count, 3).End(xlUp).Row Then
Else
a = a - 1
End If
Debug.Print a
Next a
End With
Next i
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige