Anzeige
Archiv - Navigation
1224to1228
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
wenn Wert in Zeile dann Spalte kopieren
Valeri
Hallo liebes Excelforum,
ich möchte von mappe1.xls alle Spalten ab Spalte C, in die mappe2.xls kopieren bei denen in der Zeile 1 oder 2 (sollte einstellbar sein) der Wert größer 0 ist. Die anderen Spalten sollen nicht mitkopiert werden.
Könnt ihr mir dabei helfen?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn Wert in Zeile dann Spalte kopieren
26.08.2011 19:40:08
fcs
Hallo Valeri,
das nachfolgende Makro sollte es tun. Das Makro kopiert die Formate und Werte der zutreffenden Spalten jeweils in ein neues Tabellenblatt.
Gruß
Franz
Sub CopySpalten()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim SpalteQ As Long, SpalteZ As Long, vAuswahl
Set wksQ = ActiveSheet
vAuswahl = Application.InputBox(Prompt:="Welche Zeile soll ausgewertet werden? 1 oder 2", _
Title:="Spalten mit Wert in Zeile 1 oder 2 > 0 kopieren", Default:=1, Type:=1)
Select Case vAuswahl
Case 0 'Abbrechen wurde gewählt
Case 1, 2
With wksQ
SpalteZ = 0
For SpalteQ = 3 To .Cells(vAuswahl, .Columns.Count).End(xlToLeft).Column
If .Cells(vAuswahl, SpalteQ) > 0 Then
If wksZ Is Nothing Then
Worksheets.Add
Set wksZ = ActiveSheet
End If
.Columns(SpalteQ).Copy
SpalteZ = SpalteZ + 1
wksZ.Cells(1, SpalteZ).PasteSpecial Paste:=xlPasteFormats
wksZ.Cells(1, SpalteZ).PasteSpecial Paste:=xlPasteValues
End If
Next
End With
Application.CutCopyMode = False
If wksZ Is Nothing Then
MsgBox "Keine zutreffenden Spalten zum Kopieren gefunden"
Else
Range("A4").Select
ActiveWindow.FreezePanes = True
End If
Case Else
MsgBox """" & vAuswahl & """ ist ein unzulässsiger Wert", vbInformation, _
"Spalten mit Wert in Zeile 1 oder 2 > 0 kopieren"
End Select
End Sub

Anzeige
AW: wenn Wert in Zeile dann Spalte kopieren
26.08.2011 20:22:54
Peter
Hallo Valeri,
ich will meine Version nun nicht für mich behalten.
Ggf. musst Du Tabellenblattnamen anpassen.
https://www.herber.de/bbs/user/76358.xls
Gruß Peter
AW: wenn Wert in Zeile dann Spalte kopieren
29.08.2011 09:34:05
Valeri
Hallo fcs,
Danke für deine schnelle Antwort!
ich habe deinen Code angestestet!
Als erstes viel mir auf, das bei dem starten des Makros eine abfrage kommt in welcher Zeile gesucht werden soll. Diese Abfrage muss ganz weg, dass möchte ich manuell im Code eintragen.
Als zweites erzeug dein Code mir immer ein neues Tabellenblatt in meiner Arbeitsmappe! Das soll auch nicht passieren, denn ich möchte die zu kopierenden Daten ja in die Mappe2.xls exportieren.
Ich habe es versucht mit meinem halbwisse den Code umzustellen, habe es aber nicht hin bekommen!
Es wäre sehr nett von dir wenn Du mir da noch mal helfen könntest oder jemand anderes aus dem Forum.
Gruß Valeri
Anzeige
AW: wenn Wert in Zeile dann Spalte kopieren
29.08.2011 20:19:07
fcs
Hallo Valerie,
dann sollte es so aussehen.
Gruß
Franz
Sub CopySpalten()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim SpalteQ As Long, SpalteZ As Long, vAuswahl
Set wksQ = ActiveSheet
vAuswahl = 2 'Zeile deren Inhalt auf Werte >0 geprüft werden soll
Select Case vAuswahl
Case 0 'Abbrechen wurde gewählt
Case 1, 2
With wksQ
SpalteZ = 0
For SpalteQ = 3 To .Cells(vAuswahl, .Columns.Count).End(xlToLeft).Column
If .Cells(vAuswahl, SpalteQ) > 0 Then
If wksZ Is Nothing Then
'Neue Mappe mit einem Tabellenblatt anlegen
Workbooks.Add Template:=xlWBATWorksheet
Set wksZ = ActiveSheet
'oder wenn in ein Tabellenblatt einer vorhandenen und geöffneten Mappe _
kopiert werden soll
'              Set wksZ = Workbboks("MappeXYZ.xls").Worksheets(1)
End If
.Columns(SpalteQ).Copy
SpalteZ = SpalteZ + 1
wksZ.Cells(1, SpalteZ).PasteSpecial Paste:=xlPasteFormats
wksZ.Cells(1, SpalteZ).PasteSpecial Paste:=xlPasteValues
End If
Next
End With
Application.CutCopyMode = False
If wksZ Is Nothing Then
MsgBox "Keine zutreffenden Spalten zum Kopieren gefunden"
Else
Range("A4").Select
ActiveWindow.FreezePanes = True
End If
Case Else
MsgBox """" & vAuswahl & """ ist ein unzulässsiger Wert", vbInformation, _
"Spalten mit Wert in Zeile 1 oder 2 > 0 kopieren"
End Select
End Sub

Anzeige

417 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige