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

Range(...).copy klappt nicht korrekt

Range(...).copy klappt nicht korrekt
04.12.2005 13:53:12
Reinhard
Hallo Wissende,
nachfolgend der Gesamtcode, wie dort in Abspeichern() ersichtlich steht in C4 Hans, in C5 Meier und in C36 ein Datum.
Seit ner Stunde verzweifel ich dran dass ich es nicht hinkriege dass diess in der zweiten Tabelle so erscheint:

A    B    C   D    E    F    G   H   I   J   K   L
1  blabla ...
2  Hans Meier                                      1.7.2005
3
4
Leider wird so kopiert:
A    B    C   D    E    F    G   H   I   J   K   L
1  blabla...
2  Hans Hans                                       1.7.2005
3 Meier Meier
4

Kopiert wird wie folgt:
With Workbooks("Übersicht.xls").Worksheets(blatt)
.Unprotect
ThisWorkbook.Activate
iRow = .Range("A65536").End(xlUp).Row + 1
On Error GoTo Fehler
Range("C4:C5").Copy Destination:=.Range("A" & iRow & ":B" & iRow)
Range("C35").Copy Destination:=.Range("C" & iRow)
Range("C19").Copy Destination:=.Range("D" & iRow)
Range("C9:C10").Copy Destination:=.Range("E" & iRow & ":F" & iRow)
Range("C26").Copy Destination:=.Range("G" & iRow)
Range("C42:C45").Copy Destination:=.Range("H" & iRow & ":K" & iRow)
Range("C36").Copy Destination:=.Range("L" & iRow)
.Protect
End With

iRow zeigt korrekt 2 an. Ich verzweifel langsam, irgendwie seh ich den Wald vor lauter Bäumen nicht :-(
Gruß
Reinhard
Option Explicit
Sub Abspeichern()
[c36] = CDate("1.7.2005")
[c4] = "Hans"
[c5] = "Meier"
If Prüfen = True Then
Call Eintragen
Call UnterNamenSpeichern
Else
MsgBox "C4 oder C5 ist/sind leer, oder C36 ist kein datum"
End If
End Sub
Sub Eintragen()
'Das Makro übertragt die Daten vom MA Datenblatt in die geschlossene DAtei MA Übersicht.
'Das Datum in Zelle C36 wird geprüft und anhand der Monats- und Jahreszahl in die
'entsprechende MA Übersicht (Januar bis Dezember) eingetragen.
Dim wksSource As Worksheet, wksTarget As Worksheet, iRow As Long 'Integer geht nur bis 32...
Dim blatt As String, Tabelle As Worksheet, vorhanden As Boolean, zähler As Integer
Dim Datei
On Error GoTo Dateifehler
vorhanden = False ' wenn Übersicht.xls nicht offen, öffnen
For Each Datei In Workbooks
If Datei.Name = "Übersicht.xls" Then vorhanden = True
Next Datei
If vorhanden = False Then Workbooks.Open Filename:="c:\Übersicht.xls"
Set wksSource = Workbooks("Datenblatt.xls").Worksheets("MA Datenblatt")
blatt = "Übersicht " & MonthName(Month(wksSource.Range("C36")), True) & " " & CStr(Year(wksSource.Range("C36")))
With Workbooks("Übersicht.xls")
vorhanden = False 'wenn Blatt "Übersicht mmm yyyy" nicht existiert, erzeugen und ans Ende stellen
For Each Tabelle In .Worksheets
zähler = zähler + 1
If Tabelle.Name = blatt Then vorhanden = True
Next Tabelle
If vorhanden = False Then
.Worksheets("MA Übersicht").Copy After:=.Worksheets(zähler)
.ActiveSheet.Name = blatt
End If
End With
With Workbooks("Übersicht.xls").Worksheets(blatt)
.Unprotect
ThisWorkbook.Activate
iRow = .Range("A65536").End(xlUp).Row + 1
On Error GoTo Fehler
Range("C4:C5").Copy Destination:=.Range("A" & iRow & ":B" & iRow)
Range("C35").Copy Destination:=.Range("C" & iRow)
Range("C19").Copy Destination:=.Range("D" & iRow)
Range("C9:C10").Copy Destination:=.Range("E" & iRow & ":F" & iRow)
Range("C26").Copy Destination:=.Range("G" & iRow)
Range("C42:C45").Copy Destination:=.Range("H" & iRow & ":K" & iRow)
Range("C36").Copy Destination:=.Range("L" & iRow)
.Protect
End With
Exit Sub
Fehler:
MsgBox "Fehler"
Exit Sub
Dateifehler:
MsgBox "Dateifehler"
End Sub
' Das Makro speichert das MA Datenblatt unter dem Namen des Klienten, die Einträge
' der Originaldatei werden gelöscht, das MA Datenblatt wird beim nächsten Aufruf
' wieder leer zur Verfügung gestellt.
Sub UnterNamenSpeichern()
Dim Antw
' Datei kopieren und MA Datenblatt.xls leeren
'       ThisWorkbook.SaveCopyAs Filename:="C:\Personalinnovation\Mitarbeiter in Beratung\" & Range("C4") & "_" & Range("C5") & ".xls"
ActiveSheet.Unprotect
ActiveSheet.Range("C1:K52").ClearContents
'*** Zelle B1 auch leeren
Range("B1").ClearContents
Range("C4:J4").Select '?
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Workbooks("Übersicht.xls").Close savechanges:=True
Antw = MsgBox("Mappe Dantenblatt.xls schliessen?", vbYesNo)
If Antw = vbYes Then ActiveWorkbook.Close savechanges:=True
End Sub
Function Prüfen() As Boolean
Prüfen = IIf(Range("C4") = "" Or Range("C5") = "" Or IsDate(Range("c36")) = False, False, True)
End Function

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
erledigt, Lösung gefunden
04.12.2005 15:23:20
Reinhard
Hallo,
hatte wohl die Excel-Basics vergessen :-(
Range("C4:C5").Copy: .Range("A" & iRow & ":B" & iRow).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Range("C35").Copy Destination:=.Range("C" & iRow)
Range("C19").Copy Destination:=.Range("D" & iRow)
Range("C9:C10").Copy: .Range("E" & iRow & ":F" & iRow).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Range("C26").Copy Destination:=.Range("G" & iRow)
Range("C42:C45").Copy: .Range("H" & iRow & ":K" & iRow).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Range("C36").Copy Destination:=.Range("L" & iRow)
Gruß
Reinhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige