Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
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
Inhaltsverzeichnis

Zellen in variabler Zeile von Quelle übertragen

Zellen in variabler Zeile von Quelle übertragen
27.09.2017 13:13:21
Quelle
Hallo Freunde vom Herbers Excel Forum,
ich habe mal wieder ein Nuß zu knacken, wo ich keine Scripte finde.
In einer Quelldatei stehen Daten in einer Zeile. Die Aufgabe besteht darin, die Zeilen zu finden welche in Spalte A ein x haben, und bestimmte Zellinhalte in eine neue Datei (Master) zu verschieben. lngZeile ist dabei die variable Zeile
im Master = lngZeile die Zeile welche am Beginn ein x in Spalte A hat
in der Quelle = lngZeile2 die erste freie Zeile
Dabei sollte dann folgendes kopiert werden:
Quelle (lngZeile,3) nach Master (lngZeile2,2)
Quelle (lngZeile,4) nach Master (lngZeile2,3)
Quelle (lngZeile,5) nach Master (lngZeile2,4)
Quelle (lngZeile,7) nach Master (lngZeile2,6)
Quelle (lngZeile,10) nach Master (lngZeile2,9)
Quelle (lngZeile,12) nach Master (lngZeile2,11)
Quelle (lngZeile,13) nach Master (lngZeile2,12)
Quelle (lngZeile,14) nach Master (lngZeile2,13)
Master liegt auf einem Netzlaufwerk, und müsste grüft werden ob es im Schreibzugriff von anderen ist (also bereits geöffnet)
Quelle liegt ebenso auf einem Netzlaufwerk. Da hier aber nicht geschrieben wird, ist es m.W nicht notwendig zu rpüfen.
Der Dateiname von "Master" ist als Variable in einem Feld Tabelle "Paramater" in der Quelle auszulesen. Dies dient dazu, um das Script später einfach anzupassen wenn jemand die Tabelle "Master" neu benennt.
Wer hat zeit und Lust beim knacken der Nuß zu helfen.
Vielen Dank an alle Forumsmitglieder :-))))))))
Master Beispiel: https://www.herber.de/bbs/user/116575.xlsx
Quelle Beispiel: https://www.herber.de/bbs/user/116573.xlsx

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen in variabler Zeile von Quelle übertragen
27.09.2017 15:43:40
Quelle
Hi Christian
Ungewöhnlich, dass du von der Quelle aus startest.
Sub t()
Dim wkbQuelle As Workbook, wkbMaster As Workbook
Dim wksQuelle As Worksheet, wksMaster As Worksheet
Dim strMaster As String, lngZeile As Long
Set wkbQuelle = ThisWorkbook
Set wksQuelle = wkbQuelle.Worksheets("Tabelle1")
strMaster = ThisWorkbook.Path & "\Master.xlsx"
'strMaster = "C:\Pfad\" & wkbQuelle.Worksheets("Parameter").Range("A1") & ".xlsx" ' Alternative
If IsFileOpen(strMaster) Then
MsgBox "Datei geöffnet, Abbruch"
Exit Sub
End If
Set wkbMaster = Workbooks.Open(strMaster)
Set wksMaster = wkbMaster.Worksheets("Tabelle1")
With wksQuelle
For lngZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lngZeile, 1) = "x" Then
.Range(.Cells(lngZeile, 2), .Cells(lngZeile, 13)).Copy _
wksMaster.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Next lngZeile
End With
wkbMaster.Close True
End Sub

' Quelle: support.microsoft.com/de-de/help/291295/macro-code-to-check-whether-a-file-is-already-open
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next   ' Turn error checking off.
filenum = FreeFile()   ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum          ' Close the file.
errnum = Err           ' Save the error number that occurred.
On Error GoTo 0        ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred.
Case Else
Error errnum
End Select
End Function

cu
Chris
Anzeige
AW: Zellen in variabler Zeile von Quelle
28.09.2017 07:22:38
Quelle
Hallo ChrisL,
Ich starte deswegen bei der Quelle, da der Master nur eine zentrale Ablage der Abteilung ist, und ich immer in vond er Quelle komme. Das Ziel ist es, die Eingaben welche meine Kollegen in der Quelle tätigen, auf einen Klick in den Master zu übernehmen. Aktuell muss ich alles mühevoll einzeln kopieren.
Ein Teil klappt damit, dafür schon einem herzlichen Dank!
Allerdings klappt der Copy Befehl nicht. So wie ich das sehe, kopierst du die ganze Zeile. Die ist leider nicht möglich, da im Master nur die definierten Zellen ohne Schutz sind. Die anderen Zellen sind Berechnungsfelder, welche ich nicht überschreiben kann....
Ich müsste mich auf das kopieren von einzelnen Zellen, und das Einfügen dieser einzelnen Zellen beschränken....ist dies möglich?
Vielen Dank
Christian
Anzeige
AW: Zellen in variabler Zeile von Quelle
28.09.2017 08:47:46
Quelle
Hi Christian
Kann man... aber ich sehe im Beispiel keine geschützten Zellen oder berechnete Felder. Ich wüsste also nicht was du nun konkret kopieren willst und was nicht.
cu
Chris
AW: Zellen in variabler Zeile von Quelle
28.09.2017 08:52:48
Quelle
Hallo,
der Code funktioniert super. Ich hätte noch eine Frage: die IF abfrage in der do/while schleife fragt das Feld direkt daneben ab. Wäre es möglich das Feld (7 Felder weiter links) abzufragen?
If .Cells(c.Row, c.Column+1).Value Like date_ Then
so geht es nicht: If .Cells(c.Row, c.Column-7).Value Like date_ Then
Danke
AW: Zellen in variabler Zeile von Quelle
28.09.2017 09:01:24
Quelle
Hi Daniel
Theoretisch geht es so... Warum du "Like" verwendest, keine Ahnung.
Aber praktisch kann ich nicht helfen, weil du dich immer mehr vom Beispiel entfernst (wo kommt plötzlich die Variable c her und Datum kann auch tricky sein).
Also bitte konkret und mit Beispieldatei, weil sonst müsste ich Kaffeesatz lesen.
cu
Chris
Anzeige
AW: Zellen in variabler Zeile von Quelle
28.09.2017 10:19:11
Quelle
Hallo Chris,
Am Ende nur die Felder im Ursprungs Thread.....
Da habe ich Ziel und Quelle angegeben....
Quelle (lngZeile,3) nach Master (lngZeile2,2)
Quelle (lngZeile,4) nach Master (lngZeile2,3)
Quelle (lngZeile,5) nach Master (lngZeile2,4)
Quelle (lngZeile,7) nach Master (lngZeile2,6)
Quelle (lngZeile,10) nach Master (lngZeile2,9)
Quelle (lngZeile,12) nach Master (lngZeile2,11)
Quelle (lngZeile,13) nach Master (lngZeile2,12)
Quelle (lngZeile,14) nach Master (lngZeile2,13)
(Im Master um genau wie oben beschrieben eine Spalte versetzt, da in der Quelle ja die x Spalte vorhanden ist, im Master aber nicht)
Wenn du mir nur eine Zeile zeigst, dann kann ich diese selber kopieren und anpassen :-)))))
Gruß und DANKE
Christian
Anzeige
AW: Zellen in variabler Zeile von Quelle
28.09.2017 12:39:43
Quelle
Hi Christian
Sorry, hatte ich übersehen. Ungetestet...
Sub t()
Dim wkbQuelle As Workbook, wkbMaster As Workbook
Dim wksQuelle As Worksheet, wksMaster As Worksheet
Dim strMaster As String, lngZeile As Long, lngLetzte As Long
Set wkbQuelle = ThisWorkbook
Set wksQuelle = wkbQuelle.Worksheets("Tabelle1")
strMaster = ThisWorkbook.Path & "\Master.xlsx"
'strMaster = "C:\Pfad\" & wkbQuelle.Worksheets("Parameter").Range("A1") & ".xlsx" ' Alternative
If IsFileOpen(strMaster) Then
MsgBox "Datei geöffnet, Abbruch"
Exit Sub
End If
Set wkbMaster = Workbooks.Open(strMaster)
Set wksMaster = wkbMaster.Worksheets("Tabelle1")
With wksQuelle
For lngZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lngZeile, 1) = "x" Then
lngLetzte = wksMaster.Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngZeile, 2).Copy wksMaster.Cells(lngLetzte, 1)
'hier ergänzen
End If
Next lngZeile
End With
wkbMaster.Close True
End Sub

Anzeige
AW: Zellen in variabler Zeile von Quelle
29.09.2017 07:55:29
Quelle
Hallo Chris,
bei der DEMO Tabelle funzt es schon mal.
Ich werde es heute in die Original Übernehmen, anpassen, und dir gleich Feedback geben....
Vielen Dank schon mal für deine tolle Hilfe!!!!
Gruß
Christian

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige