Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nur werte verschieben

Nur werte verschieben
Marco

Hallo ich würde gerne wissen ob es möglich ist nur die Werte größer 0 von Spalte B in Spalte C zu schieben ohne die teilweise vorhandenen Additionen zu beschädigen. Spalte C hat ca 1000 Werte und in mehreren Zellen Formeln hinterlegt. Habe mal einen Ausschnitt angehängt.
Userbild
Gruß Marco

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Nur werte verschieben
19.09.2009 20:18:13
Tino
Hallo,
kannst ja mal testen, Tabellenname noch anpassen.
Sub Test()
Dim Bereich As Range
Dim meAr, tempAr()
Dim A As Long, B As Long

With Sheets("Tabelle1") 'Tabellenname anpassen 
    
    Set Bereich = .Range("B1", .Cells(.Rows.Count, 2).End(xlUp))
    meAr = Bereich
    
    'Spalte C leer machen für neue Daten (ohne Überschrift) 
    .Range(.Cells(2, 3), .Cells(.Rows.Count, 3)).Value = ""
    
    Redim Preserve tempAr(1 To Ubound(meAr), 1 To 1)
    
    For A = 1 To Ubound(meAr)
        If meAr(A, 1) > 0 And IsNumeric(meAr(A, 1)) Then
         B = B + 1
         tempAr(B, 1) = meAr(A, 1)
        End If
    Next A

    'ab wo einfügen 
    .Range("C2").Resize(Ubound(tempAr)) = tempAr
End With
End Sub
Gruß Tino
Anzeige
falsch habe Deine Frage falsch gelesen. oT.
19.09.2009 20:20:03
Tino
Nachfrage
19.09.2009 20:25:29
Tino
Hallo,
Du hast in Spalte C Formeln und aus Spalte B willst Du jetzt die die Daten > 0 in Spalte C ohne
die Formeln zu löschen.
Bei denen aber das Ergebnis größer > 0 ist kann die Formel gelöscht werden?
Gruß Tino
so habe ich es verstanden...
19.09.2009 21:36:52
Tino
Hallo,
also in Spalte C bleibt die Formel eine Formel und wird mit =Formel() + Wert aus B erweitert.
Ist es keine Formel, wird der Wert aus B einfach dazu addiert.
Es dürfen aber keine Matrixformeln in C vorhanden sein.
Sub Test()
Dim Bereich As Range
Dim meAr, tempAr()
Dim A As Long, B As Long

With Sheets("Tabelle1") 'Tabellenname anpassen 
    
    Set Bereich = .Range("B1", .Cells(.Rows.Count, 2).End(xlUp))
    meAr = Bereich
    
    tempAr = Bereich.Offset(0, 1).FormulaLocal
    
    'darf keine Matrixformel sein 
    For A = 2 To Ubound(meAr)
        If meAr(A, 1) > 0 And IsNumeric(meAr(A, 1)) Then
            If Left$(tempAr(A, 1), 1) = "=" Then
             tempAr(A, 1) = tempAr(A, 1) & "+" & meAr(A, 1) 'ist Formel 
            Else
             tempAr(A, 1) = tempAr(A, 1) + meAr(A, 1) 'ist keine Formel 
            End If
        End If
    Next A

    'ab wo einfügen 
    .Range("C1").Resize(Ubound(tempAr)).FormulaLocal = tempAr

End With
End Sub
Gruß Tino
Anzeige
AW: Nachfrage
19.09.2009 23:29:19
Marco
Ich habe in Spalte C mehrere Zusammenfassungen einzelner Blöcke, so nenne ich sie mal. Das bedeutet wenn ich eine Formel runter kopiere sind diese weg.
Ich weiß nicht ob es geht, suche was als vba.
Spalte A sind die Konten, Spalte B die tatsächlichen Werte und Spalte C war die Planung.
ich möchte Spalte C nachher wieder in die Ursprung Tabelle zurückkopieren ohne die teilweise enthaltenen Formeln in Spalte C zu löschen.
ich schnall es nicht...
20.09.2009 00:13:56
Tino
Hallo,
führe doch einfach das kopieren Deiner Formel nicht in Spalte C
sondern in einer anderen Spalte aus, dann bleibt Dir in C alles erhalten.
Ich lass die Frage offen.
Gruß Tino
Anzeige
AW: Nur werte verschieben
19.09.2009 21:08:27
Peterchen
Bin nicht sicher ob ich deine Aufgabe richtig verstanden habe, aber vielleicht reicht schon folgendes in den Zellen der Spalte C:
Beispiel in C1
=WENN(B1 = "";"";WENN(B1 = 0;"";B1))
Dann von C1 bis ca. C1000 kopieren.
Gruß Peter
AW: Nur werte verschieben
20.09.2009 11:23:43
Marco
Guten Morgen,
sorry ich habe wahrscheinlich das Problem nicht genau geschildert. In C1 steht =Summe(C2:C103).
in c2 - C103 dann die absoluten Werte die summiert werden sollen. In c105 und C 106 sind auch wieder Berechnungen usw. bis C1200. Wenn ich eine Formel herunterkopiere sind die vorherigen weg und somit die Spalte unbrauchbar. Ich müsste vielleicht die Zeilen ausblenden, welche in Spalte C eine Berechnung haben, und nach dem Tausch der Werte wieder Einblenden.
Ist sowas möglich?
Ich möchte nur die Istwerte aus Spalte B in Spalte C schieben ohne die vorhandenen Berechnungen zu beschädigen.
Gruß Marco
Anzeige
AW: Nur werte verschieben
20.09.2009 21:53:38
Peterchen
Hi Marco,
möglich ist fast alles ;)
Wenn alte Werte in Spalte C (keine Formeln),
überschrieben bzw. sogar gelöscht werden können/sollen,
müsste das so gehen.
Sub x()
Dim l As Long
For l = 1 To Range("B65536").End(xlUp).Row
If Not Cells(l, "C").HasFormula Then
If Cells(l, "B").Value  "" And Cells(l, "B").Value  0 Then
Cells(l, "C").Value = Cells(l, "B").Value
Else                        'Falls alte Werte in Spalte C wieder weg sollen
Cells(l, "C").Value = ""  '  ^^
End If
End If
Next l
End Sub
Gruß Peter
AW: Nur werte verschieben
21.09.2009 20:32:38
Marco
Hallo Peter,
das ist genau das was ich gebrauchen kann, super erspart ne Menge Arbeit.
Vielen Dank für die Hilfe!
Gruß Marco
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige