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

nur Zellen und Spalten mit Inhalt kopieren

Forumthread: nur Zellen und Spalten mit Inhalt kopieren

nur Zellen und Spalten mit Inhalt kopieren
04.12.2003 17:48:59
Christian
Hallo VBA-Freunde,

habe letztens schon ein Problem behoben .... Rainer half mir dabei


Private Sub Kopieren()
Dim c As Range
Dim i As Long
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Dim V(1 To 36) As String
Dim R(1 To 36) As String
i = 1
For Each c In wks1.Range("G5:G40")
If c <> "" Then
R(i) = c.Offset(0, -5)     ' Spalte B
V(i) = c                   ' Spalte G
i = i + 1
End If
Next c
For i = 1 To 36
wks2.Cells(i + 4, 4) = R(i)
wks2.Cells(i + 4, 5) = V(i)
Next i
End Sub


Das Problem, das ich habe ist nun jedoch, wenn ich auch gleichzeitig die Spalte H prüfen und kopieren möchte, sollen diese Werte auch in Tabellenblatt zwei geschrieben werden.

Kurz gesagt: Wie kann man nur die belegten Zellen einer Matrix kopieren und gleichzeitig die Zeilen- und Spaltennamen zuweisen und alles in ein neues Tabellenblatt forlaufend einfügen.

-------1------2------3------4

--1--- ----- x ----- ------
--2--- ----- ----- ------ (soll entfallen)
--3--- ----- -----x------
--4--- ----- ----- ------x

Der Rest soll mit Zeilen- und Spaltenüberschriften in gleicher Matrixform in eine beliebige Zelle (nicht A1, z.B.: D5) kopiert werden.

Ich verzweifel hier noch ....... maaaaan ..... Danke für Eure Hilfe.
Gruß Christian
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Meinst du das so?
04.12.2003 20:48:44
Günther Abel

Private Sub Kopieren()
Dim c As Range
Dim i As Long
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim V(1 To 36, 1 To 3) As String
Dim V1
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
For Each c In wks1.Range("G5:G40")
If c <> "" And c.Offset(0, 1) <> "" Then
i = i + 1
V(i, 1) = c.Offset(0, -5)   ' Spalte B
V(i, 2) = c                 ' Spalte G
V(i, 3) = c.Offset(0, 1)    ' Spalte H
End If
Next c
V1 = V()
'   In einem Rutsch, kommt aber als Text....
Range(wks2.Cells(i + 4, 4), wks2.Cells(5, 6)) = V1
'   Oder halt einzeln mit Excel-Anpassung...
'   For i = 1 To 36
'       wks2.Cells(i + 4, 4) = V(i, 1)
'       wks2.Cells(i + 4, 5) = V(i, 2)
'       wks2.Cells(i + 4, 6) = V(i, 3)
'   Next i
End Sub

Anzeige
Fast
05.12.2003 01:04:22
Christian
Oha ... das ging ja fix ... komme jetzt erst wieder zum tippen .... es funkt ....

If c <> "" And c.Offset(0, 1) <> "" Then

Habe lediglich And in Or gesetzt, so dass er alle Zeilen mit Werten mitschleift.

Tausend Dank
Gute N8 Christian

;

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