Thema Datum  Von Nutzer Rating
Antwort
Rot Suchen Markieren und Einfuegen von einem Workbook zu einem anderen
27.01.2012 21:16:33 brokenscene
NotSolved

Ansicht des Beitrags:
Von:
brokenscene
Datum:
27.01.2012 21:16:33
Views:
1518
Rating: Antwort:
  Ja
Thema:
Suchen Markieren und Einfuegen von einem Workbook zu einem anderen

 Hallo zusammen!

ich habe ein Problem! und zwar geht es darum, dass ich aus einem Workbook (Source) in einem bestimmten Worksheet mit sehr vielen Daten an den Daten interessiert bin, die in der Spalte A sagen wir mit der Buchstabe "CA" belegt sind.
In dieser Spalte des Worksheets sind die CAs willkuerlich verteilt. Das heisst z,b. Zeile 1 bestit in der Spalte A (A1) ein CA dann wieder Zeile 5 (A5) und dann wieder 13 (A13) usw.
Ich hole mir diese Zeile und fuege sie in einem anderen neuen Workbook (Destination) mit einem anderen Pfad in einem der Wokrsheets an der erste freie nicht belegte Zeile.
Das ist der Plan! aber er geht noch nicht auf.

Ich habe dazu einen Teil meines Programmes herauskopiert und hoffe ihr koennt mir helfen.

Ich komme leider aus dieser Do-Loppschleife nicht mehr raus. Es wiederholt sich immer und immer wieder! Ich weiss zusaetzlich nicht ob das der richte weg ist.

Danke fuer eure Hilfe!


Der Code:



'opening the source
Workbooks.Open (Sourcepath & "\" & file)
Workbooks(file).Activate

'sourcesheet
Set source_ws = Sheets("MY" & MY & " Sales as of " & CY & "_Q" & Q)
source_ws.Activate

s = 1

'da ich nicht will, dass das progamm tausende zellen immer durchsucht
'finding last row in sourcesheet


Last = Range("A:A").Find(What:="*", After:=Range("A" & s), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:= _
False, SearchFormat:=False).row



Do


Workbooks(file).Activate
Set source_ws = Sheets("MY" & MY & " Sales as of " & CY & "_Q" & Q)
source_ws.Activate
'Finds range of sales data for State
row = Range("A:A").Find(What:="CA", After:=Range("A" & s), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).row

'next blank row in destination sheet
Workbooks("Modelcodes and Wholesale for CA.xlsm").Activate
Set dest_ws = Sheets("overview")
dest_ws.Activate

Lastrow = ActiveSheet.UsedRange.Rows.Count

dest_ws.Cells(Lastrow, 1) = source_ws.Cells(row, 2)

'last CA in the sheet
Workbooks(file).Activate
Set source_ws = Sheets("MY" & MY & " Sales as of " & CY & "_Q" & Q)
source_ws.Activate

LastCA = Range("A:A").Find(What:="CA", After:=Range("A" & s), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:= _
False, SearchFormat:=False).row

'exiting loop
If row = LastCA Then Exit Do

's = row

Loop 'Until s <= Last

 

 

Alternativ habe ich mir auch diesen Code euberlegt. Er funktioniert leider auch nicht. Dabei weiss ich leider nicht einmal ob ich auf dem richtigen Weg bin.

 

'dadurch, dass es zwei unterschiedliche Workbook mit unterschiedlichen Pfads
'(sourcesheet und destinationsheet) sind muesste ich doch erst das workbook und
'dann das sheet offnen aus denen ich etwas herauslesen will?
'oeffnen bevor ich den code starte. also erstmal schreiben:

file = "Bikes.xlsm"
'opening the source
Workbooks.Open (Sourcepath & "\" & file)
Workbooks(file).Activate

'das ist mein sourcesheet


Set source_ws = Sheets("MY" & MY & " Sales as of " & CY & "_Q" & Q)
source_ws.Activate

'dann kommt:

Dim bleibt As Range

With ActiveSheet.Columns(1)
On Error Resume Next
Set bleibt = .ColumnDifferences(.Find("CA", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True))
On Error GoTo 0
If Not bleibt Is Nothing Then bleibt.EntireRow.Hidden = True
.SpecialCells(xlCellTypeVisible).EntireRow.Copy

'bisher wird die zeile gesuch und kopiert kopiert?
'um sie dann in dem anderen workbook mit einem neuen pfad einzufuegen und zwar an erste freie stelle muesste ich doch jetzt erst dieses oeffnen und dann auch
'noch den sheet oder?
'also folgendes machen:

'opening destination workbook

Workbooks("Codes for CA.xlsm").Activate

'destination sheet bestimmen
Set dest_ws = Sheets("CA")
dest_ws.Activate

'und anschliessend:
'diese Zeile ist mir leider absolut unklar. ich verstehe nicht  was hier genau gemacht wir


Sheets(.Parent.Next.Index).Cells(Sheets(.Parent.Next.Index).Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial
Application.CutCopyMode = False
.EntireRow.Hidden = False
End With
 

ErrMsg:
MsgBox ("Cannot find Workbook, check path and filename, and try again")
Exit Sub

End Sub

 

 

 

 

Danke fuer eure Hilfe

B.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Suchen Markieren und Einfuegen von einem Workbook zu einem anderen
27.01.2012 21:16:33 brokenscene
NotSolved