Thema Datum  Von Nutzer Rating
Antwort
Rot Werte in neues Sheet kopieren wenn Bedingung erfüllt
19.08.2017 08:37:45 Annemarie
Solved
19.08.2017 10:14:46 Gast98426
NotSolved
19.08.2017 10:30:06 Gast25915
NotSolved
19.08.2017 11:36:32 Gast98426
NotSolved
19.08.2017 12:33:26 Gast33002
NotSolved

Ansicht des Beitrags:
Von:
Annemarie
Datum:
19.08.2017 08:37:45
Views:
1277
Rating: Antwort:
 Nein
Thema:
Werte in neues Sheet kopieren wenn Bedingung erfüllt

Hallo zusammen, 

ich scheitere gerade an einem Makro für folgendes Problem: 

Ich habe eine Datei mit mehreren Sheets, die jeweils gleich aufgebaut sind. In Zeile O steht manchmal ein Wert (Preis), ansonsten DIV/0 oder nichts. Immer wenn in Spalte O ein Wert steht, möchte ich diesen sowie außerdem den Wert aus der gleichen Zeile und Spalte D und E in ein neues Sheet kopieren, sodass sie dort in der Reihenfolge D, E, O angeordnet sind (Teilenummer, Beschreibung, Preis). 

Ich habe dafür ein Makro geschrieben, dass zuerst ein neues SHeet "Output" anlegt und danach die Sheets durchlaufen soll und eben das gewünschte kopieren ausführen soll.
Das Makro läuft auch, aber leider stehen in "Output" völlig falsche Werte... Und ich weiß nicht warum :-D

Ich hatte zuerst mit Copy und Paste gearbeitet, dann stand auch etwas in "Output", allerdings nur Formeln, nicht die Werte, die ich haben wollte. Wollte dann mit PasteSpecial eben die Werte einfügen, das ergab aber eine Kollision mit dem Worksheet-Objekt. Gerade versuche ich, das Ganze über Variablen zu lösen.

Leider weiß ich gerade überhaupt nicht mehr weiter, wo mein Fehlerliegt... 

Hier der Code:
 

Sub Copy_Cond()
 
    Dim ws As Worksheet
    Dim I As Integer
    Dim S As Integer
    Dim WS_Count As Integer
    Dim RowCount As Integer
    
    Dim copy_o As Double
    Dim copy_e As String
    Dim copy_d As Long
    
    WS_Count = ActiveWorkbook.Worksheets.Count
    
    With ThisWorkbook
        Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
        ws.Name = "Output"
    End With
    
    For S = 1 To WS_Count
    
        Worksheets(S).Activate
    
        RowCount = Cells(Cells.Rows.Count, "O").End(xlUp).Row
    
        For I = 1 To RowCount
            Range("O" & I).Select
            check_value = ActiveCell
            
            If Not check_value = "#DIV/0!" Or IsEmpty(ActiveCell) Then
                copy_o = ActiveCell.Range("O" & I)
                
                Worksheets("Output").Activate
                RowCount = Cells(Cells.Rows.Count, "c").End(xlUp).Row
                Range("C" & RowCount + 1).Value = copy_o
                
                Worksheets(S).Activate
                Range("E" & I).Select
                copy_e = ActiveCell.Range("E" & I)
                
                Worksheets("Output").Activate
                Range("B" & RowCount + 1).Value = copy_e
                
                Worksheets(S).Activate
                Range("D" & I).Select
                copy_d = ActiveCell.Range("D" & I)
                
                Worksheets("Output").Select
                Range("A" & RowCount + 1).Value = copy_d
            
            End If
            
        Next
        
    Next
 
End Sub
 

Die Tabelle selbst kann ich leider nicht beifügen, da sie sensible Inhalte meines Arbeitgebers enthält.

Vielen Dank für die Hilfe!
Annemarie


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 Werte in neues Sheet kopieren wenn Bedingung erfüllt
19.08.2017 08:37:45 Annemarie
Solved
19.08.2017 10:14:46 Gast98426
NotSolved
19.08.2017 10:30:06 Gast25915
NotSolved
19.08.2017 11:36:32 Gast98426
NotSolved
19.08.2017 12:33:26 Gast33002
NotSolved