Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
344to348
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige