Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
248to252
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
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kleine Änderung am Makro...

Kleine Änderung am Makro...
01.05.2003 14:34:25
Harti
Hi',
also hier im Forum konnte mir schon prima weitergeholfen werden.
Ich habe jetzt ein Makro (siehe unten) welches für meine Zwecke fast perfekt ist. Nur eine Kleinigkeit müsste geändert werden...aber wie?

Es sollen nur die Zellen rüberkopiert werden, in denen ein Wert steht. Zellen ohne Wert (also leere Zellen) sollen nicht rüberkopiert werden.
Wie kann ich das erreichen?

Danke...Harti

Sub CommandButton1_Click()
'kopiert 2 Bereiche in ausgewählte Tabelle
Dim strOutFile As String
Dim rngInput1 As Range 'Input-Spalte 1
Dim rngInput2 As Range 'Input-Spalte 2
Dim rngOutput1 As Range 'Output-Spalte 1
Dim rngOutput2 As Range 'Output-Spalte 2
Dim wbkOutput As Workbook 'Output-File
Dim shtOutput As Worksheet 'Output-Tabelle
Dim strSheet As String 'Tabellen-Name

strOutFile = ThisWorkbook.Path & "\bundesliga_tipp.xls"

strSheet = InputBox("Tabellenblatt:") 'Tabellen-Namen abfrage

Set rngInput1 = [E11:E316] 'Input-Spalte 1 zuweisen
Set rngInput2 = [G11:G316] 'Input-Spalte 2 zuweisen
Set wbkOutput = Workbooks.Open(strOutFile) 'Output-File öffnen
On Error GoTo errhandler
Set shtOutput = wbkOutput.Worksheets(strSheet) 'Output-Tabelle zuweisen
On Error GoTo 0
Set rngOutput1 = shtOutput.[B11:B316] 'Output-Spalte 1 zuweisen
Set rngOutput2 = shtOutput.[D11:D316] 'Output-Spalte 2 zuweisen
rngInput1.Copy 'Spalte 1 kopieren
rngOutput1.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'als Wert einfügen
rngOutput1.PasteSpecial Paste:=xlFormats
rngInput2.Copy 'Spalte 2 kopieren
rngOutput2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'als Wert einfügen
rngOutput2.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False 'Kopiermodus beenden

shtOutput.Activate
shtOutput.Range("A1").Select 'go home

errhandler:
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kleine Änderung am Makro...
01.05.2003 15:28:11
Hans T

Hallo Harti

Dieser Code kommt mir irgendwie bekannt vor...

Du willst leere Zellen nicht hinüberkopieren. Das kann auf zwei Arten verstanden werden:

- sollen die nicht leeren Zellen im Output-File je an die gleiche Zelladresse kopiert werden, die sie im Input-File hatten? In den Lücken bleiben allfällige frühere Werte stehen.

oder:

- sollen die kopierten Zellen so nach oben zusammengerückt werden, dass dazwischen keine leeren Zellen mehr stehen?

Gruss
Hans T.

Re: Kleine Änderung am Makro...
01.05.2003 15:35:27
ChrisL

Hallo Harti

Verstehe zwar den Sinn darin nicht ganz, aber hier ein Ansatz:

Dim rnginput1OhneEmpty As String

Set rnginput1 = [E11:E316]

For Each zelle In rnginput1
If IsEmpty(zelle) = False Then
If rnginput1OhneEmpty = Empty Then
rnginput1OhneEmpty = zelle.Address
Else
rnginput1OhneEmpty = rnginput1OhneEmpty & "," & zelle.Address
End If
End If
Next

Range(rnginput1OhneEmpty).Copy


Gruss
Chris

Anzeige
Re: Kleine Änderung am Makro...
01.05.2003 16:30:36
Harti

Das erstere trifft zu. Ich versuche es einmal einfach zu erklären.
Das Makro kopiert ja die Zellen E11:E316 und G11:G316 in die andere Datei. Es kann ab sein, dass nur in den Zellen bis z.B. E150 bzw. G150 Werte stehen. Die werden jetzt kopiert.
So weit so gut.

Zu einem späteren Zeitpunkt wird das Makro erneut aufgerufen.
Die Zellen bis E150 bzw. G150 sind jetzt aber leer und nur ab Zeile 151 befinden sich Daten in den Zellen. Beim Kopieren dürfen aber in der Zieldatei die früheren Werte (bis Zeile 150) nicht durch die jetzt leeren Zellen überschrieben werden.

Ich hoffe, das war jetzt hoffentlich einigermassen verständlich.

Harti

Anzeige
Re: Kleine Änderung am Makro...
01.05.2003 16:37:31
Hans T.

Hallo Harti

Glück gehabt. Dann ist es einfach.

Du schreibst bei PasteSpecial statt SkipBlanks:=False SkipBlanks:=True. Dann bleiben werden nur nicht-leere Zellen übertragen.

Gruss
Hans T.

Re: Kleine Änderung am Makro...
01.05.2003 17:11:34
Harti

Danke...funktioniert.

Ist wirklich einfach, wenn man's weiß ;)


Harti

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige