Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

excel makro zeilen kopieren

Forumthread: excel makro zeilen kopieren

excel makro zeilen kopieren
10.07.2003 13:41:53
arnold
habe folgendes problem:
soll aus verschiedenen blättern derselben datei immer verschiedene felder in ein neues blatt kopieren:
z.b.:
1.blatt:
nummer.name.nachname
1 anton meier
2 gernot müller
2.blatt:
nummer.name.nachname
3 martin geier
4 willi eigner
dies soll auf dem neuen blatt so aussehen:
nummer.name.nachname
1 anton meier
2 gernot müller
3 martin geier
4 willi eigner
hätte folgenden code anzubieten:

Sub Auswert()
' Auswertung von Sysdata Konvertierungsfiles
' Suchkriterium: Kontobezeichnung
' Ergebnis: darauf kontierte Stunden & Aufgaben werden gesammelt
Application.ScreenUpdating = False
Kontierungsfile = Application.GetOpenFilename(, , "Sysdata MA-spez. Kontierungsfiles")
If Kontierungsfile = False Then ' Benutzer hat abgebrochen
Exit 

Sub
End If
directory = CurDir()
concatfile = InputBox("Wie soll das Ergebnis-File heissen?")
suchstring = InputBox("Bitte zu suchende Kontobezeichnung eingeben")
'Protokolldatei für MA-Name anlegen
Set protbook = Workbooks.Add
Set newbook = Workbooks.Add
newbook.Activate
Range("A1") = "Konto:"
Range("B1") = suchstring
Range("A2") = "MA"
Range("B2") = "Thema1"
Range("C2") = "Thema2"
Range("D2") = "Stunden"
Range("A2").Activate
z_reihe = 3
Set dateisuche = Application.FileSearch
With dateisuche
.LookIn = directory
If .Execute() = 0 Then
MsgBox "Verzeichnis ist leer"
End If
MsgBox ("Es werden " & .FoundFiles.Count & " Mitarbeiterkontierungsfiles bearbeitet")
For i = 1 To .FoundFiles.Count
Kontierungsfile = .FoundFiles(i)
Workbooks.Open FileName:=Kontierungsfile, UpdateLinks:=0
MaBook = ActiveWorkbook.Name
ActiveSheet.Unprotect ("Projekt00")
'MA-Name/Personalnr. lesen
Ma_name = Range("C4").Value
If Ma_name = "" Then
Ma_name = ""
End If
'Ende der Daten suchen
Range("A7").Select
Selection.End(xlDown).Activate
reihe = ActiveCell.Row
For r = 2 To reihe
' Daten suchen
If InStr(Cells(r, 3).Value, suchstring) Then
Kontobez = Cells(r, 3)
'zu kopierende Daten selektieren
For c = 7 To 40
If Cells(r, c) <> "" Then
Aufwand = Cells(r, c)
Thema1 = Cells(4, c)
Thema2 = Cells(5, c)
newbook.Activate
Cells(z_reihe, 1) = Ma_name
Cells(z_reihe, 2) = Thema1
Cells(z_reihe, 3) = Thema2
Cells(z_reihe, 4) = Aufwand
Cells(z_reihe, 5) = Kontobez
z_reihe = z_reihe + 1
Workbooks(MaBook).Activate
End If
Next c
End If
Next r
' Kontierungsfile schließen
Workbooks(MaBook).Activate
Application.CutCopyMode = False
Workbooks(MaBook).Close Savechanges:=False
'Prokolleintrag durchühren
protbook.Activate
Range("A" & i).Value = Ma_name
Range("B" & i).Value = Personalnr
Next i
End With
' Ergebnis-File zurückschreiben
newbook.Activate
ActiveWorkbook.SaveAs FileName:= _
directory & "\" & concatfile, FileFormat:=xlWorkbookNormal, CreateBackup:=False
newbook.Close Savechanges:=False
'Protokollfile schreiben
protbook.Activate
ActiveWorkbook.SaveAs FileName:=directory & "\" & concatfile & "_Prot", FileFormat:=xlWorkbookNormal, CreateBackup:=False
protbook.Close Savechanges:=False
' Auf Makrofile zurückschalten
Workbooks("Auswert.xls").Worksheets("Tabelle1").Activate
Application.ScreenUpdating = True
End 

Sub
dieser kann das bei verschiedenen dateien, bin aber leider so unfähig in vba dass ich das nicht mal umschreiben kann.
wäre für jede hilfe dankbar,
mfg arnold

                    
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: excel makro zeilen kopieren
11.07.2003 21:51:26
OliveR
Hallo Arnold,
ich weiss nicht recht, ob ich Deine Anfrage richtig gedeutet habe. Vielleicht hilft Dir das weiter.
Gruss
OliveR
_____________________________________________________________________________________

Sub Makro2()
Dim i%
Sheets(1).Select
Range("A1").EntireRow.Copy
Sheets.Add
ActiveSheet.Name = "Gesamt"
ActiveSheet.Paste
Sheets("Gesamt").Move Before:=Sheets(1)
For Each sh In ThisWorkbook.Sheets
MsgBox (sh.Name)
sh.Select
If sh.Name <> "Gesamt" Then
If sh.Cells(1, 1) <> "" Then
lR = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 1), Cells(lR, 1)).EntireRow.Copy
Sheets("Gesamt").Select
Cells(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select
ActiveSheet.Paste
End If
End If
Next sh
'sortierung nach nummern
Sheets("Gesamt").Select
Cells.Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige