MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 08.09.2017, 13:37   #1
Mikrofon
Neuer Benutzer
Neuer Benutzer
Standard VBA - Bestimmte Tabelle ansprechen

Hi,

ich habe Folgenden Code geschrieben, teils auch mit eurer Hilfe.

Code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    
            'Bank 'Januar
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AJ13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Bankgebühren, Gewerkschaftsbeitrag, Haftplfichtvers., Rechtsschutzvers., Berufsunfähigkeitsvers., Altersvorsorge, Andere Vers., Kredit, Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AL13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("AJ13:AM999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With

               
                For al = 100 To 13 Step -1
                    If InStr(1, Range("AJ" & al), "/", vbTextCompare) > 0 Then
                    Range("AJ" & al & ":AM" & al).Delete Shift:=xlUp
                    End If
                Next al
                
                
            'Auto
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AE13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Miete, Heizkosten, Müll, Wasser, Verwaltung, Strom, Reparaturen, Hausmeister, Grundsteuer, Hausratversicherung, Wohngebäudevers., Andere Vers., Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AG13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                  "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
                , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("AE13:AH999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With
                
                Active.Workbook.Worksheets ("Januar")
                For ag = 100 To 13 Step -1
                    If InStr(1, Range("AE" & ag), "/", vbTextCompare) > 0 Then
                    Range("AE" & ag & ":AH" & ag).Delete Shift:=xlUp
                    End If
                Next ag
                
                
            'Wohnen
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("Z13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Miete, Heizkosten, Müll, Wasser, Verwaltung, Strom, Reparaturen, Hausmeister, Grundsteuer, Hausratversicherung, Wohngebäudevers., Andere Vers., Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AB13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                  "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
                , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("Z13:AC999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With
                
                For ab = 100 To 13 Step -1
                    If InStr(1, Range("Z" & ab), "/", vbTextCompare) > 0 Then
                    Range("Z" & ab & ":AC" & ab).Delete Shift:=xlUp
                    End If
                Next ab
            
            
            'Anschaffungen
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("U13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Kleidung, Schmuck, Technik, Bücher, Musik, Werkzeuge, Möbel / Deko, Abzahlungen, Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("W13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("U13:X999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With
                 
                 For w = 100 To 13 Step -1
                     If InStr(1, Range("U" & w), "/", vbTextCompare) > 0 Then
                     Range("U" & w & ":X" & w).Delete Shift:=xlUp
                     End If
                 Next w
    
    
            'Lebenshaltung
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("P13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Lebensmittel, Getränke, Pflegeprodukte, Handyvertrag, Fitnessstudio, Freizeit, Medikamente, Friseur, Bürobedarf, Essensmarken, Abo´s, Reisen, Geschenke / Spenden, öffentl. Verkehrsmittel, Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("R13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("P13:S999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With
                 
                 For r = 100 To 13 Step -1
                     If InStr(1, Range("P" & r), "/", vbTextCompare) > 0 Then
                     Range("P" & r & ":S" & r).Delete Shift:=xlUp
                     End If
                 Next r


Es geht um folgenden Teil.
Dieser spricht im Moment nur die geöffnete Tabelle an. Er soll allerdings die Tabelle "Januar" ansprechen.

Ich habs mit
Code:

            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AJ13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Bankgebühren, Gewerkschaftsbeitrag, Haftplfichtvers., Rechtsschutzvers., Berufsunfähigkeitsvers., Altersvorsorge, Andere Vers., Kredit, Sonstiges " _
                , DataOption:=xlSortNormal
            ActiveWorkbook.Worksheets("Januar").Sort.SortFields.Add Key:=Range("AL13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With ActiveWorkbook.Worksheets("Januar").Sort
                .SetRange Range("AJ13:AM999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
                Range("A1").Select
            End With

          With Worksheets("Januar")
                For al = 100 To 13 Step -1
                    If InStr(1, Range("AJ" & al), "/", vbTextCompare) > 0 Then
                    Range("AJ" & al & ":AM" & al).Delete Shift:=xlUp
                    End If
                Next al
             End With
versucht.

Leider wurde der letzte Teil dann nicht ausgeführt (Er soll die oberen Zeilenbereiche mit "/" löschen.

Zum besseren Verständnis habe ich eine Beispieldatei eingefügt.

Grüße
Angehängte Dateien
Dateityp: xlsm Download.xlsm (133,1 KB, 4x aufgerufen)
Mikrofon ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.09.2017, 15:34   #2
R J
MOF Meister
MOF Meister
Standard

Hi,

versuche es mal damit:
Code:

    
    With ThisWorkbook.Worksheets("Januar")
        .Activate
            'Bank 'Januar
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=.Range("AJ13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Bankgebühren, Gewerkschaftsbeitrag, Haftplfichtvers., Rechtsschutzvers., Berufsunfähigkeitsvers., Altersvorsorge, Andere Vers., Kredit, Sonstiges " _
                , DataOption:=xlSortNormal
            .Sort.SortFields.Add Key:=Range("AL13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("AJ13:AM999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
'                Range("A1").Select
            End With
                For al = 100 To 13 Step -1
                    If InStr(1, .Range("AJ" & al), "/", vbTextCompare) > 0 Then
                    .Range("AJ" & al & ":AM" & al).Delete Shift:=xlUp
                    End If
                Next al
                
            'Auto
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=.Range("AE13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Miete, Heizkosten, Müll, Wasser, Verwaltung, Strom, Reparaturen, Hausmeister, Grundsteuer, Hausratversicherung, Wohngebäudevers., Andere Vers., Sonstiges " _
                , DataOption:=xlSortNormal
            .Sort.SortFields.Add Key:=.Range("AG13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                  "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
                , DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("AE13:AH999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
'                .Range("A1").Select
                
                For ag = 100 To 13 Step -1
                    If InStr(1, .Range("AE" & ag), "/", vbTextCompare) > 0 Then
                    .Range("AE" & ag & ":AH" & ag).Delete Shift:=xlUp
                    End If
                Next ag
                
            'Wohnen
           .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=.Range("Z13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Miete, Heizkosten, Müll, Wasser, Verwaltung, Strom, Reparaturen, Hausmeister, Grundsteuer, Hausratversicherung, Wohngebäudevers., Andere Vers., Sonstiges " _
                , DataOption:=xlSortNormal
            .Sort.SortFields.Add Key:=.Range("AB13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                  "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
                , DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("Z13:AC999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
'                .Range("A1").Select
                
                For ab = 100 To 13 Step -1
                    If InStr(1, .Range("Z" & ab), "/", vbTextCompare) > 0 Then
                    .Range("Z" & ab & ":AC" & ab).Delete Shift:=xlUp
                    End If
                Next ab
            
            
            'Anschaffungen
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=.Range("U13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Kleidung, Schmuck, Technik, Bücher, Musik, Werkzeuge, Möbel / Deko, Abzahlungen, Sonstiges " _
                , DataOption:=xlSortNormal
            .Sort.SortFields.Add Key:=Range("W13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("U13:X999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
'                .Range("A1").Select
                 
                 For w = 100 To 13 Step -1
                     If InStr(1, .Range("U" & w), "/", vbTextCompare) > 0 Then
                     .Range("U" & w & ":X" & w).Delete Shift:=xlUp
                     End If
                 Next w
    
    
            'Lebenshaltung
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=.Range("P13") _
                , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                "/, Lebensmittel, Getränke, Pflegeprodukte, Handyvertrag, Fitnessstudio, Freizeit, Medikamente, Friseur, Bürobedarf, Essensmarken, Abo´s, Reisen, Geschenke / Spenden, öffentl. Verkehrsmittel, Sonstiges " _
                , DataOption:=xlSortNormal
           .Sort.SortFields.Add Key:=.Range("R13") _
               , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                 "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" _
               , DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("P13:S999")
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
                 
                 For r = 100 To 13 Step -1
                     If InStr(1, .Range("P" & r), "/", vbTextCompare) > 0 Then
                     .Range("P" & r & ":S" & r).Delete Shift:=xlUp
                     End If
                 Next r
      End With
End Sub
Das bedeutet, Du musst auch alle Verweise ordentlich referenzieren. Also den Punkt z. Bsp. vor Range("xxxx") setzen.

Bin mir nicht sicher, ob ich alle erwischt habe...

__________________

Ciao, Ralf

Kommt mir irgendwie bekannt vor...
Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.


R J ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2017, 17:23   #3
Mikrofon
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Es hat geklappt, ich danke dir
Mikrofon ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.