Beiträge von Tanto

    Hallo Community ^^


    Für die Datenbank


    eine variable uebernimmt einen wert,keine Formatierung,daher die verfälschte ausgabe


    die folgende function korrigiert das Problem



    z.b.
    =Verbund1(A1;B1;A2) 'Beispiel mit 3 Parameter als verbund,parameteranzahl ist flexibel


    Function Verbund1(ParamArray VString() As Variant) As String
    For VbT = 0 To UBound(VString)
    If IsNumeric(VString(VbT)) = True And InStr(VString(VbT), ",") = 0 Then VString(VbT) = VString(VbT) & ",00"
    If IsNumeric(VString(VbT)) = True And InStr(VString(VbT), ",") > 0 And Len(VString(VbT)) - InStr(VString(VbT), ",") = 1 Then VString(VbT) = VString(VbT) & "0"
    Verbund1 = Verbund1 & " " & VString(VbT)
    Next VbT
    End Function




    Gruss Tanto

    Hallo Community :cool:

    Ein Beispiel ;)

    Liebe Grüße Tanto :p



    Hier noch ein Code für einen Begriff ;)

    Code
    Sub Lösch_Zeilen()
        Application.ScreenUpdating = False
        On Error GoTo errExit
        With ActiveSheet.Columns(1)
                .Replace What:="DeinSuchBegriff", replacement:=True, lookat:=xlWhole
                .SpecialCells(xlCellTypeConstants, xlLogical).EntireRow.Delete
        End With
    errExit:
        Application.ScreenUpdating = True
    End Sub



    Hallo Community :D

    Ich denke mal das selbst ein Dicobject nicht unbedingt schneller wäre,hier wären entsprechende Zeitmessungen von Vorteil :oops:

    Liebe Grüße Tanto :p

    Hallo Community :hut:

    Zwei mögliche Varianten ;)

    Liebe Grüße Tanto :p

    Eine mögliche Formel der Zahlenisolierung :!:

    =WECHSELN(A2;"kb";"")

    Ein Makro der Bereichsaddierung :!:

    Einzufügen Alt + F11 /AllgemeinesModul :018:
    Die Function ist nun über Function einfügen/Benutzerdefiniert erreichbar :idee2:



    Der Ergebnisindex ist der Zeiger auf den jeweiligen Zahlenblock,in diesem falle die 1
    Verschiedene Positionen liessen sich leicht über ein ParamArray gestalten :kratz:

    Hallo Community :cool:

    Ein Beispiel,für einen Automatismus,der das Changeereignis eines Worksheets nutzt ;)

    Liebe Güße euer Tanto :p

    Einzufügen ist der Code

    Alt+F11/Projektexplorer/DeineTabelle

    Hallo Community :p

    Hier eine mögliche VB Variante die die Function SummeWenn nutzt :D

    Liebe Grüße euer Tanto ;)

    Tabelle1 = Daten
    Spalte A = Bezeichner
    Spalte B = Zahlen

    Tabelle2 = Erstellte Übersicht

    Code
    Sub Summieren()
            Worksheets(1).Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
            Worksheets(1).Columns("A").Copy Worksheets(2).Range("A1")
            Worksheets(1).Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=False
            Worksheets(2).Range("B2:B" & Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = "=SUMIF(Tabelle1!RC[-1]:R[7]C[-1],RC[-1],Tabelle1!RC:R[7]C)"
    End Sub

    Hallo Community :D

    Angepasste Variante wäre das :wink:

    Liebe Grüße Tanto :razz:



    Code
    Sub FilterKopieren()
        Worksheets("Übersicht").Range("H1").AutoFilter Field:=1, Criteria1:=1
        Worksheets("Übersicht").Rows("2:" & Worksheets("Übersicht").UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy Worksheets("Teilnetz_1_OS_Glis").Range("A" & Worksheets("Teilnetz_1_OS_Glis").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
        Worksheets("Übersicht").Range("H1").AutoFilter
    End Sub

    Hallo Community :D

    Eine Variante wäre das ;)

    Liebe Grüße Tanto :p

    Code
    Sub FilterKopieren()
        Worksheets("Tabelle1").Range("A1").AutoFilter Field:=1, Criteria1:=1
        Worksheets("Tabelle1").Rows("2:" & Worksheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy Worksheets("Tabelle2").Range("A" & Worksheets("Tabelle2").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
        Worksheets("Tabelle1").Range("A1").AutoFilter
    End Sub

    Hallo Michael :D

    Die Variable WksWert wurde den Erfordernissen angepasst,vom Datentyp Long auf Double geändert ;)

    Liebe Grüße Tanto :p

    Code
    Function WksWert(Zellen As Range, FarbIndex As Long) As Double
        Dim Zelle As Range
        For Each Zelle In Zellen
            If Cells(Zelle.Row, Zelle.Column).Interior.ColorIndex = FarbIndex Then
                WksWert = WksWert + Cells(Zelle.Row, Zelle.Column)
            End If
        Next Zelle
    End Function

    Hallo Michael :D

    Eine Variante wäre ein AddInn ;)

    Liebe Grüße Tanto :p

    1. In eine leere Mappe ist der ausgewählte Code einzufügen
    2. Clicken Sie im Menü Datei auf Speichern unter
    3. Als Dateityp ist Microsoft Excel-Add-Inn einzustellen und ein Eindeutiger Name für das zukünftige AddInn
    4. Clicken Sie auf Extras/Add-Inns-Manager und setzen das Häckchen bei ihrem AddInn
    5. Nun steht die Funktion für Excel Global bereit

    Sollte sich eine beliebige Function nicht Aktualisieren,dann diese mit folgenden Code ergänzen(Erste Zeile)

    Code
    Application.Volatile
    • Zeigen Sie im Menü Extras von Microsoft Excel auf Makro, und klicken Sie dann auf Visual Basic-Editor.
    • Klicken Sie im Menü Einfügen auf Modul.
    • Geben Sie Ihren Code in das Codefenster des Moduls ein, oder kopieren Sie ihn hinein.
    • Zeigen Sie im Visual Basic-Editor-Menü von Microsoft Excel auf Datei, und klicken Sie dann auf Schließen und zurück zu Microsoft Excel
    • Fügen Sie nun die Benutzerdifinierte Function in eine Zelle ein
    • z.b. = WksWert(A1:A100;3)
    • Der Suchbereich wäre bei diesem Beispiel Zelle A1 bis Zelle A100,der Farbindex 3 steht für Rot


    Hallo Community :D

    Hoffe es ist nun verständlicher ;)

    Liebe Grüße Tanto :p

    Hallo Michael :D

    Wie gewünscht ;)

    Liebe Grüße Tanto :p

    Die Function ist Alt+F11/Projektexplorer/AllgemeinesModul einzufügen

    Syntax
    = WksWert(Bereich,GesuchterFarbIndex)

    Code
    Function WksWert(Zellen As Range, FarbIndex As Long) As Long
        Dim Zelle As Range
        For Each Zelle In Zellen
            If Cells(Zelle.Row, Zelle.Column).Interior.ColorIndex = FarbIndex Then
                WksWert = WksWert + Cells(Zelle.Row, Zelle.Column)
            End If
        Next Zelle
    End Function

    Hallo Kiesel :p

    Die zu sortierenden Daten sind Spalte A und Spalte B ist eine Hilfsspalte die ausgeblendet sein sollte :D

    Liebe Grüße Tanto ;)

    Code
    Sub SortierenCrit1_Crit2()
        Dim Lzeile As Long
        Lzeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
        Range("A1:A" & Lzeile).Copy Range("B1:B" & Lzeile)
        Range("B1:B" & Lzeile).Replace What:="*_", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
        Columns("A:B").Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1"), _
        Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        Range("B1:B" & Lzeile).Clear
    End Sub

    Hallo Community :D

    Konnte leider nicht weiter helfen,da ich kein excel7 besitze und die Datei dadurch nicht lesbar war 8O

    Liebe grüße Tanto :p

    Hallo Victor :cool:

    Vielleich ist das Makro an der falschen Position,es muss hier eingefügt werden für den Automatismus

    Alt+F11/Projektexplorer/DeineTabelle

    Solltest Du nicht zurecht kommen,dann schau bitte in dein Postfach zum Emailaustausch ;)

    Das Ergebnis poste ich dann zu angemessener Zeit :huepf:

    Liebe Grüße Tanto :p