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 16.05.2018, 13:45   #1
ruffyde
Neuer Benutzer
Neuer Benutzer
Standard VBA - Anfrage

Hallo,
ich hätte da ein makro was an und für sich geht aber wenn möglich würde ich dieses gerne verkürzen ich habe viele gelesen aber nichts brauchbares gefunden danke schon mal in voraus

Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("KW1").Rows("3").Hidden = Range("n3").Value = "x"
Sheets("KW52").Rows("3").Hidden = Range("n3").Value = "x"
(bis KW1 bis KW 52 immer wiederholt)
Sheets("Gesamt").Rows("7").Hidden = Range("n3").Value = "x"
Sheets("Monatsplan").Columns("c").Hidden = Range("n3").Value = "x"
Sheets("Ü-Stunden").Rows("3").Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows("4").Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows("35").Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows("69").Hidden = Range("n3").Value = "x"
End Sub
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 14:08   #2
Mc Santa
MOF Meister
MOF Meister
Standard

Code:

Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim hide As Boolean
    Dim i As Integer
    
    hide = Range("n3").Value = "x"
    
    For i = 1 To 52
        Sheets("KW" & i).Rows(3).Hidden = hide
    Next i
    
    Sheets("Gesamt").Rows(7).Hidden = hide
    Sheets("Monatsplan").Columns(3).Hidden = hide
    Sheets("Ü-Stunden").Rows(3).Hidden = hide
    
    Sheets("Urlaubsplan").Rows(4).Hidden = hide
    Sheets("Urlaubsplan").Rows(35).Hidden = hide
    Sheets("Urlaubsplan").Rows(69).Hidden = hide
    
End Sub

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)

Geändert von Mc Santa (16.05.2018 um 14:15 Uhr).
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 14:13   #3
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

So zB

Code:

Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    If ws.Name Like "KW*" Then
        ws.Rows(3).Hidden = ws.Range("N3").Value = "x"
    End If
Next

Sheets("Gesamt").Rows(7).Hidden = Range("n3").Value = "x"
Sheets("Monatsplan").Columns("c").Hidden = Range("n3").Value = "x"
Sheets("Ü-Stunden").Rows(3).Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows(4).Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows(35).Hidden = Range("n3").Value = "x"
Sheets("Urlaubsplan").Rows(69).Hidden = Range("n3").Value = "x"
End sub
Du kannst dir bei Rows("3") aber die Anführungszeichen sparen, denn auch wenn du nur 3 eingibst, bleibt es Zeile Nummer 3.

PS: Satzzeichen sind kostenlos verfügbar auf der Tastatur, rechts vom M.

__________________

Schöne Grüße
Berni
MisterBurns ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 15:20   #4
EarlFred
MOF Guru
MOF Guru
Standard

Zitat:

Satzzeichen sind kostenlos verfügbar auf der Tastatur, rechts vom M.

meinst Du die Dinger gleich links von der Taste, die Buchstaben groß macht?

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 5 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,037% per 04.04.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 15:37   #5
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Code:

links von der Taste, die Buchstaben groß macht
Da ist bei mir nur noch der Abgrund:
Angehängte Grafiken
Dateityp: png capslock.PNG (78,4 KB, 9x aufgerufen)

__________________

Gruß
Ralf
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 15:45   #6
EarlFred
MOF Guru
MOF Guru
Standard

auf der Seite ist auch so eine Taste? Cool!

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 5 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,037% per 04.04.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 15:45   #7
ruffyde
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Danke es geht super
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 16:10   #8
ruffyde
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Jetzt muss ich doch noch einmal nerven,gibt es eine Möglichkeit das Makro noch einmal so zu ändern das sie die folgenden 26 Zeilen/Spalten auch überprüft und gegeben falls ausblendet?

Geändert von ruffyde (16.05.2018 um 16:12 Uhr).
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 19:02   #9
ruffyde
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von Mc Santa Beitrag anzeigen

Code:

Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim hide As Boolean
    Dim i As Integer
    
    hide = Range("n3").Value = "x"
    
    For i = 1 To 52
        Sheets("KW" & i).Rows(3).Hidden = hide
    Next i
    
    Sheets("Gesamt").Rows(7).Hidden = hide
    Sheets("Monatsplan").Columns(3).Hidden = hide
    Sheets("Ü-Stunden").Rows(3).Hidden = hide
    
    Sheets("Urlaubsplan").Rows(4).Hidden = hide
    Sheets("Urlaubsplan").Rows(35).Hidden = hide
    Sheets("Urlaubsplan").Rows(69).Hidden = hide
    
End Sub

Jetzt muss ich doch noch einmal nerven,gibt es eine Möglichkeit das Makro noch einmal so zu ändern das es die folgenden 26 Zeilen/Spalten auch überprüft und gegeben falls ausblendet?

Geändert von ruffyde (16.05.2018 um 19:27 Uhr).
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 20:31   #10
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Nerven tut höchstens, wenn einer zwei mal das gleiche postet, nur weil es ihm nicht schnell genug geht.

Was meinst du mit "die folgenden 26 Zeilen/Spalten"? Zeilen oder Spalten?
Ich interpretiere es mal so, dass nicht nur die Zeile 3 auf "x" überprüft und ausgeblendet werden soll, sondern eben alle Zeilen von 3 bis 29. Stimmt das so? Falls ja, dann nimm diesen Code

Code:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim ws As Worksheet
Dim i as integer
Dim hide as Boolean

hide = Range("n3").Value = "x"

For Each ws In ActiveWorkbook.Worksheets
    For i = 3 to 29
        If ws.Name Like "KW*" Then
            ws.Rows(i).Hidden = ws.Range("N" & i).Value = "x"
        End If
    Next i
Next ws

Sheets("Gesamt").Rows(7).Hidden = hide
Sheets("Monatsplan").Columns(3).Hidden = hide
Sheets("Ü-Stunden").Rows(3).Hidden = hide
Sheets("Urlaubsplan").Rows(4).Hidden = hide
Sheets("Urlaubsplan").Rows(35).Hidden = hide
Sheets("Urlaubsplan").Rows(69).Hidden = hide
End sub

__________________

Schöne Grüße
Berni
MisterBurns ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 21:59   #11
ruffyde
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von MisterBurns Beitrag anzeigen

Nerven tut höchstens, wenn einer zwei mal das gleiche postet, nur weil es ihm nicht schnell genug geht.

Was meinst du mit "die folgenden 26 Zeilen/Spalten"? Zeilen oder Spalten?
Ich interpretiere es mal so, dass nicht nur die Zeile 3 auf "x" überprüft und ausgeblendet werden soll, sondern eben alle Zeilen von 3 bis 29. Stimmt das so? Falls ja, dann nimm diesen Code

Code:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim ws As Worksheet
Dim i as integer
Dim hide as Boolean

hide = Range("n3").Value = "x"

For Each ws In ActiveWorkbook.Worksheets
    For i = 3 to 29
        If ws.Name Like "KW*" Then
            ws.Rows(i).Hidden = ws.Range("N" & i).Value = "x"
        End If
    Next i
Next ws

Sheets("Gesamt").Rows(7).Hidden = hide
Sheets("Monatsplan").Columns(3).Hidden = hide
Sheets("Ü-Stunden").Rows(3).Hidden = hide
Sheets("Urlaubsplan").Rows(4).Hidden = hide
Sheets("Urlaubsplan").Rows(35).Hidden = hide
Sheets("Urlaubsplan").Rows(69).Hidden = hide
End sub

Sorry und leider geht er nicht,nun ein wenig genauer wie ich das meine

Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Private Sub Worksheet_Change(ByVal Target As Range)

Dim hide As Boolean
Dim i As Integer



hide = Range("n3-28").Value = "x"

For i = 1 To 52
Sheets("KW" & i).Rows(3-28).Hidden = hide
Next i

Sheets("Gesamt").Rows(7-32).Hidden = hide
Sheets("Monatsplan").Columns(3-28).Hidden = hide
Sheets("Ü-Stunden").Rows(3-28).Hidden = hide

Sheets("Urlaubsplan").Rows(4-29).Hidden = hide
Sheets("Urlaubsplan").Rows(35-60).Hidden = hide
Sheets("Urlaubsplan").Rows(69-94).Hidden = hide


in Moment hab ich es einzeln geschrieben, aber das lässt die Datei langsamer reagieren.

Geändert von ruffyde (16.05.2018 um 22:19 Uhr).
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 06:32   #12
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Zitat:

Sorry und leider geht er nicht

Komisch, denn bei mir macht der Code genau das, was du möchtest.
Aber vielleicht kannst du einfach mal auf die Frage eingehen, die ich oben gestellt hatte:

Zitat:

Ich interpretiere es mal so, dass nicht nur die Zeile 3 auf "x" überprüft und ausgeblendet werden soll, sondern eben alle Zeilen von 3 bis 29. Stimmt das so?

Daher nochmal die Frage:
Soll die Zeile ausgeblendet werden, wenn sich in Spalte N ein "x" befindet?

Wenn das so sein soll, macht mein Code genau das in allen Tabellenblättern namens "KW..". Nur in den anderen Blättern fehlt der Teil noch, aber das kann man ja nachholen. Nur beantworte bitte erst die Frage, sonst mache ich da noch fünf Varianten und keine passt.

Nächste Frage:
Nach welcher Logik sollen in "Gesamt", "Monatsplan", "Ü-Stunden" und "Urlaubsplan" die Zeilen ausgeblendet werden? Ebenfalls, wenn in der betreffenden Zeile ein "x" steht?

__________________

Schöne Grüße
Berni
MisterBurns ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 07:58   #13
Mc Santa
MOF Meister
MOF Meister
Standard

Man kann die Beschreibung auf unterschiedliche Arten verstehen, daher sind die Nachfragen von MisterBurns angebracht.

Ich habe es derweil wie folgt interpretiert:
Code:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    Dim hide As Boolean
    Dim i As Integer
    Dim relativeCol As Integer
    Dim rngWatch As Range
    
    Set rngWatch = Me.Range("N3:N28")

    For Each rng In Target
        If Not Intersect(rng, rngWatch) Is Nothing Then
            hide = rng.Value = "x"
            relativeCol = rng.Column - 2
            
            For i = 1 To 52
                Sheets("KW" & i).Rows(relativeCol + 2).Hidden = hide
            Next i
            
            Sheets("Gesamt").Rows(relativeCol + 6).Hidden = hide
            Sheets("Monatsplan").Columns(relativeCol + 2).Hidden = hide
            Sheets("Ü-Stunden").Rows(relativeCol + 2).Hidden = hide
            
            Sheets("Urlaubsplan").Rows(relativeCol + 3).Hidden = hide
            Sheets("Urlaubsplan").Rows(relativeCol + 34).Hidden = hide
            Sheets("Urlaubsplan").Rows(relativeCol + 68).Hidden = hide
        End If
    Next rng
End Sub

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 18:14   #14
ruffyde
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von MisterBurns Beitrag anzeigen

Komisch, denn bei mir macht der Code genau das, was du möchtest.
Aber vielleicht kannst du einfach mal auf die Frage eingehen, die ich oben gestellt hatte:



Daher nochmal die Frage:
Soll die Zeile ausgeblendet werden, wenn sich in Spalte N ein "x" befindet?

Wenn das so sein soll, macht mein Code genau das in allen Tabellenblättern namens "KW..". Nur in den anderen Blättern fehlt der Teil noch, aber das kann man ja nachholen. Nur beantworte bitte erst die Frage, sonst mache ich da noch fünf Varianten und keine passt.

Nächste Frage:
Nach welcher Logik sollen in "Gesamt", "Monatsplan", "Ü-Stunden" und "Urlaubsplan" die Zeilen ausgeblendet werden? Ebenfalls, wenn in der betreffenden Zeile ein "x" steht?

Verzeihung und ja es ist wie du gesagst hast, sobald n 3-28 ein x (Tabelle Mitarbeiter )ist, sollen die jeweiligen Mitarbeiter in den anderen Tabellen ausgeblendet werden:

KW 1-52/Mitarbeiter 3-28
Gesamt 7-32
Monatsplan 3-28
Ü-Stunden 3-28
Urlaubsplan 4-29
Urlaubsplan 35-60
Urlaubsplan 69-94

Ich möchte sozusagen bei setzen eines x, den Mitarbeiter bzw Leerzeile ausblenden in den aufgeführten Tabellen.
ruffyde ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.05.2018, 06:09   #15
Mc Santa
MOF Meister
MOF Meister
Standard

Hast du meinen Code probiert? Ich habe genau dieses Verhalten bezwecken wollen, ich konnte es nur ohne Datei nicht testen und kann natürlich Fehler nicht ausschließen

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa 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 20:23 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.