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

VBA Wenn Zelle Leer dann

Forumthread: VBA Wenn Zelle Leer dann

VBA Wenn Zelle Leer dann
Philipp
Hallo,
ich habe eine Tabelle und möchte daraus automatisch eine Liste generieren.
Die Tabelle sieht in etwa so aus
A B C
1 XYZ ABC
2 Bla 23%
3 Blub 2% 7%
4 ...
Das Makro soll nun schauen ob in der Spalte A und in der Reihe 1 Werte stehen. Wenn das der Fall ist soll es diese als Liste darstellen.
Das ganze soll dann so aussehen:
BLA XYZ 23%
BLUB XYZ 2%
BLUB ABC 7%
usw.
Wie programmiere ich das Makro so,das es die Felder auf Inhalt prüft und sie für den Fall das sie NICHT LEER sind verkettet?
Hoffe das ist jetzt nicht zu kompliziert erklärt ;)
DANKE
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Wenn Zelle Leer dann
12.07.2012 16:29:13
Franc
bissi ungenau beschrieben ...
Laut deinem Beispiel soll er
- die erste Spalte bei der Liste ignorieren
- wenn nur in Spalte B und C was steht dann soll er B und C nehmen
- wenn in Spalte B, C und D was steht soll er B und D nehmen?
Wo soll die Liste erstellt werden?
AW: Kreuztabelle auflösen
13.07.2012 15:19:10
fcs
Hallo Philipp,
	XYZ	ABC		GHI
Bla	23%		7%	3%
Blub	2%	7%		20%

wird zu
Wert 1	Wert 2	Prozent
Bla	XYZ	23%
Bla	GHI	3%
Blub	XYZ	2%
Blub	ABC	7%
Blub	GHI	20%

Gruß
Franz
Sub Kreuztabelle_auf_loesen()
Dim wb As Workbook
Dim wks_Q As Worksheet
Dim wks_Z As Worksheet
Dim Zeile_Z As Long, Zeile_Q As Long, Spalte_Q As Long
Set wb = ActiveWorkbook
Set wks_Q = ActiveSheet
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Neues Blatt für umgruppierte Daten
wb.Worksheets.Add
Set wks_Z = ActiveSheet
With wks_Z
'Spaltentitel in Zieltabelle
Zeile_Z = 1
.Cells(Zeile_Z, 1) = "Wert 1"
.Cells(Zeile_Z, 2) = "Wert 2"
.Cells(Zeile_Z, 3) = "Prozent"
.Columns(3).NumberFormat = "0%"
End With
With wks_Q
For Zeile_Q = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
For Spalte_Q = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
If .Cells(Zeile_Q, Spalte_Q)  "" And .Cells(1, Spalte_Q)  "" Then
Zeile_Z = Zeile_Z + 1
wks_Z.Cells(Zeile_Z, 1) = .Cells(Zeile_Q, 1)
wks_Z.Cells(Zeile_Z, 2) = .Cells(1, Spalte_Q)
wks_Z.Cells(Zeile_Z, 3) = .Cells(Zeile_Q, Spalte_Q)
End If
Next Spalte_Q
Next Zeile_Q
End With
With wks_Z
.Columns.AutoFit
Range("A2").Select
'Fenter fixieren
ActiveWindow.FreezePanes = True
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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