Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Kopieren aber ohne leere Zellen

VBA Kopieren aber ohne leere Zellen
17.02.2003 09:54:48
Robert
Hallo Ihr allen,

Hoffentlich könnt Ihr mich mal wieder helfen.
Ist es möglich mittels VBA so zu programmieren, dass es nur Daten von gegebenen Bereiche kopiert, wenn die Bereiche Daten haben.

z.B.:
Auf Arbeitsblatt "Daten"

Im Bereich "B1:E20" hat es Daten

Im Bereich "B21:E41" hat es keine Daten

Im Bereich "B42:E62" hat es Daten

Ich würde gerne sehen, dass nur Bereich "B1:E20" & Bereich "B42:E62
auf Arbeitsblatt "Daten_Final" hinter einander eingefügt werden.

Es muss also leere Bereiche automatisch erkennen und übergehen.

Es wäre schon, wenn jemanden mir mit diesem Problem helfen kann. Ich habe dieses Problem vor ein paar Wochen schon mal aufs Forum gehabt, nur leider hat niemanden geantwortet.

Im Fall das ich nicht deutlich genug bin, bitte lass es mir doch wissen.


Grüsse

Robert


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 10:28:41
L.Vira

Im Bereich "B21:E41" hat es keine Daten
Was, wenn nur eine Zelle im Bereich etwas enthält?

Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 10:28:42
L.Vira

Im Bereich "B21:E41" hat es keine Daten
Was, wenn nur eine Zelle im Bereich etwas enthält?

Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 10:35:59
Robert

Hallo,

Danke schon mal im voraus.
Es wird entweder im ganzen Bereich "B21:E41" Daten haben oder gar keine. In diesem Beispiel hat es einfach keinen.


Robert



Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 10:38:14
L.Vira

If not application.counta([B21:E41])= 0 Then
[B21:E41].Copy ......
End if

Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 11:24:36
Robert

Hallo,

Ich glaube dass geht nicht ganz auf. Es kopiert einfach alles, leere und Zellen mit Daten.
So wurde dass Blatt wo die daten eingefügt werden, gleich aussehen, wie dort wo sie kopiert wurden.

Es musste ja aber so aussehen; Kopiert und Eingefügt werden nur noch Bereich "B1:E20" & "B42:E62" Wenn möglich hintereinander antstatt untereinander

Robert



Sub copy2()

If Not Application.CountA("B6:F31") = "" Then

Range("B6:F31").copy

End If


End Sub

Anzeige
Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 11:57:55
L.Vira

das war natürlich nur ein Codebeispiel und keine Komplettlösung.
CountA liefert einen numerischen Wert, nicht ""

Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 11:57:55
L.Vira

das war natürlich nur ein Codebeispiel und keine Komplettlösung.
CountA liefert einen numerischen Wert, nicht ""

Nachfrage
17.02.2003 12:05:13
Martin Beck

Hallo Robert,

sind die Zellen wirklich leer, oder stehten z.B. Formeln drinnen, die Leerstrings zurückgeben?

Wie viele leere Bereiche snd denn ggf. zu berücksichtigen (nur einer?)?

Gruß
Martin Beck

Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 13:26:47
Robert

Hallo,


Denkst du aber mich weiter helfen zu können mit der Info, den ich bis jetzt gebracht habe oder fehlt dir da etwas bestimmtes?

Gruss

Robert

Anzeige
Re: VBA Kopieren aber ohne leere Zellen
17.02.2003 13:31:16
Robert

Hallo,


Denkst du aber mich weiter helfen zu können mit der Info, den ich bis jetzt gebracht habe oder fehlt dir da etwas bestimmtes?

Gruss

Robert

Re: Nachfrage
17.02.2003 17:37:48
Robert

Hallo,


Alle Zellen sind wirklich leer.
Ich bin unterdessen aber schon viel weiter gekommen mit einer Lösung. Siehe unten.
Ich bin jetzt leider nicht mehr sehr lange am PC und werde Morgen weiter machen.
Für eventuelle Lösungen bin ich natürlich Dankbar und werde bescheid geben wie es lauft.

Gruss

Robert


Sub Zusammenfassung()
Dim i As Integer
Dim Counter As Integer
Dim Pkcounter As Integer

For i = 1 To 8

Counter = 4
Pkcounter = 1
Do Until Worksheets("data").Cells(Counter, 1).Value = ""

If Not (Worksheets("data").Cells(Counter + 2, 2)) = "" Then

Worksheets("data").Activate
ActiveSheet.Range(Cells(Counter, 2 + (7 * (i - 1))), Cells(Counter + 33, 2 + (7 * (i - 1)))).copy

Worksheets("data1").Activate
ActiveSheet.Cells(4 + (35 * (i - 1)), Pkcounter + 1).Select
ActiveSheet.Paste

Pkcounter = Pkcounter + 1

Else: End If

Counter = Counter + 35
Loop

Next i
End Sub

Anzeige

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige