Auftragsprogrammierung

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unterstützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!  oder rufen Sie uns einfach an.

Referenzen

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe

Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die folgende Abbildung zeigt die Ausgangssituation, also den Datenblock, der entsprechend konvertiert werden soll.

  A B
1 Fall-Nr. Merkmal
2 1234 FE00012
3   FE00014
4 12344 FE00018
5   FE00012
6 11111 FE00024
7   FE00012
8   FE00035
9 9234 FE00001
10 11134 FE00015
11   FE00009
12    

Ziel ist nun, zu jeder Fall-Nummer aus Spalte A die Merkmale zuzuordnen. Der erste Datensatz soll also wie folgt aufgebaut sein:

Fall-Nr.   Merkmal 1   Merkmal 2
1234      FE00012     FE00014

Für die Zuordnung der Merkmale zu den Fall-Nummern kann folgender VBA-Code verwendet werden:

Sub umgliedern()

Dim lngZeile As Long
Dim lngSpalte As Long

'** Vorgaben definieren
Set ws = ThisWorkbook.ActiveSheet
lngZeile = 1
lngSpalte = 7

'** Ausgabebereich löschen
ws.Range("E2:Z100").ClearContents


'** Durchlaufen des Datenbestands von Zeile 2 bis zur letzten Zeile in Spalte B
For a = 2 To ws.Cells(Rows.Count, 2).End(xlUp).Row
  
  '** Prüfen, ob die Zeile in Spalte 1 einen Wert enthält
  If ws.Cells(a, 1).Value <> "" Then
    
    lngZeile = lngZeile + 1 'Zeilennummer erhöhen
    ws.Cells(lngZeile, 5).Value = ws.Cells(a, 1).Value 'Wert aus Spalte 1 in neuen Bereich übertragen
    ws.Cells(lngZeile, 6).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
    lngSpalte = 7 'Spaltennummer setzen
  
  '** Prüfen, ob Zeile in Spalte 1 leer ist
  ElseIf ws.Cells(a, 1).Value = "" Then
    
    ws.Cells(lngZeile, lngSpalte).Value = ws.Cells(a, 2).Value 'Wert aus Spalte 2 in neuen Bereich übertragen
    lngSpalte = lngSpalte + 1 'Spaltennummer erhöhen
  End If
  
Next a
End Sub


Nachdem das Makro durchgelaufen ist, sieht das Ergebnis wie folgt aus:

  E F G H
1 Fall-Nr. Merkmal 1 Merkmal 2 Merkmal 3
2 1234 FE00012    
3 12345 FE00014    
4 12344 FE00018 FE00012  
5 11111 FE00024 FE00012 FE00035
6 9234 FE00001    
7 11134 FE00015 FE00009  
8        

Die konvertierten Datensätze wurden ab Spalte E eingetragen. Sämtliche Merkmale pro Fall-Nummer wurden ausgelesen und dem entsprechenden Fall zugeordnet. Damit liegt pro Fall ein kosistenter Datensatz mit den zugeordeten Mermalen vor.

Dieser Code berücksichtigt automatisch die korrekte Anzahl an Merkmalen pro Fall-Nr, ohne dass eine Anpassung des Codes erforderlich ist.

Über den nachfolgenden Link kann die Beispieldatei heruntergeladen werden.

 

Drucken E-Mail

Relevante Artikel

  • Duplikate entfernen - Verschiedene Möglichkeiten

    Eine Häufige Fragestellung im Umgang mit Excel ist das Löschen von Duplikaten aus einer Liste. Im Beispiel liegt eine Liste mit doppelt oder...

  • Text in Kleinbuchstaben umwandeln

    Das folgende Makro wandelt den Text im markierten Bereich in Kleinbuchstaben um. Es werden allso alle Buchstaben als Kleinbuchstaben dargestellt....

  • Autofilter: Gefilterte Datensätze auslesen

    In diesem Artikel erläutern wir, wie sich der über einen Autofilter gefilterte Inhalt aus einer Liste auslesen lässt. Als Ausgangsbasis dient wieder...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach dem durchlauf des...

  • Cells- zur Range-Schreibweise umwandeln

    Mit dieser Funktion können Sie die die Cells-Schreibweise, z. B. Cells(1, 2) in die Range-Schreibweise z. B. Range("B1") umwandeln.   {code} Sub...

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der 
 Lösungsfindung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
R
O
J
E
K
T
A
N
F
R
A
G
E
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Bestätigung erklären Sie sich mit der Verwendung von Cookies auf Excel-Inside Solutions einverstanden.
Weitere Informationen Ok