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

Bestimmte Anzahl an Zeilen und Spalten einblenden

Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 16:27:24
Esther
Hallo zusammen,
ich bin neu hier! Habe schon oft Hilfe in diesem Forum gesucht, jetzt shreib ich mal selber was ;)
Und zwar:
Auf Tabellenblatt A gibt es in E40 ein Dropdown mit Ziffern von 0 - 16.
In den Spalten K40 bis Z40 sind weitere Dropdownfelder enthalten (Daten werden aus einem anderen Blatt gezogen).
Die Spalten K:Z werden standardmäßig ausgeblendet.
Wähle ich nun in E40 "12" aus, sollen sich von Spalte K aus beginnend 12 Spalten auftun (somit wären also Spalte K bis V eingeblendet, der Rest bleibt ausgeblendet).
Wenn ich in E40 die "12" in "5" ändere, sollen sich 7 Spalte wieder ausblenden usw.
Auf dem Tabellenblatt B in Spalte B (ab Zeile 109) sollen automatisch Zeilen hinzugefügt werden. Und zwar so viele, wie auf Tabellenblatt A im Dropdown ausgewählt wurde, also z.B. "12" oder "5".
Diese Zeilen sollen in Spalte B auch ausgefüllt werden.
Wenn z.B. in Tabellenblatt A in Spalte K im Dropdown "Anfänger", in Spalte L "Fortgeschritten" usw. ausgewählt wurden, so sollen "Anfänger" und "Fortgeschritten" auf Tabellenblatt B ab Zeile 109 nach unten hin angezeigt werden.
Ist das verständlich? Wird eine Bsp.datei benötigt?
Gerne bereite ich sie dann vor.
Und ich freue mich sehr über Tipps und Anregungen!
Ganz lieben Dank!!

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 17:04:08
EtoPHG
Hallo Esther,
Zitat: Wird eine Bsp.datei benötigt?
Das wäre am besten, mit unveränderter Datenstruktur, aber anonymisiertem (zufälligem) Inhalt!
Gruess Hansueli

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 17:58:20
Esther
Ich kriege den Upload nicht hin! Von nem Mac...
Ich versuchs morgen mal bei Windows. Das ist ganz schön blöd gerade :(

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 18:02:03
Luschi
Hallo Esther,
hier mal zum 1. Problem 1 Beispiel:
https://www.herber.de/bbs/user/99473.xlsm
Gruß von Luschi
aus klein-Paris

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 18:11:27
Esther
Oja, das trifft es ;) DANKE!! Das bau ich dann schonmal ein und passe es an.
Den Rest dann, wenn ich morgen die Datei hochlade.
Und wie gesagt, ich fange mit VBA gerade erst an ;)

Anzeige
AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 18:51:05
Luschi
Hallo Esther,
tausche mal diese Zeile
Tabelle1.Columns("K:" & Chr(75 + Target.Value - 1)).EntireColumn.Hidden = False
gegen diese hier aus
Tabelle1.Columns("K:K").Resize(, Target.Value).EntireColumn.Hidden = False
Dann gibt es keine Probloeme, falls Du auch jenseits der Spalte 'Z' ausblenden willst.
Gruß von luschi
aus klein-Paris

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 19:04:02
Esther
Super, das klappt! Hab ich gleich mal getestet. Danke nochmal :)

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
10.08.2015 19:04:03
Esther
Super, das klappt! Hab ich gleich mal getestet. Danke nochmal :)

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
11.08.2015 09:27:18
Esther
Anbei meine Beispieldatei. Die Lösung von Luschi habe ich eingearbeitet.
Jetzt müssen nur noch Zeilen mit Formeln automatisch eingefügt werden...
https://www.herber.de/bbs/user/99479.xlsm

Anzeige
AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
11.08.2015 14:57:24
Esther
Hallo Luschi,
ich habe jetzt doch noch eine Frage ;)
Wenn ich "6" auswähle und somit 6 Spalten einblenden lasse und diese mit Inhalt befülle, werden diese zur Weiterberechnung verwendet. Wenn ich dann aber nur noch 4 brauche, werden 2 zwar ausgeblendet, der Inhalt bleibt aber in diesen beiden drin (und in den weiteren Berechnungen, da Sverweis und so...). Ist es möglich, bei jedem Ausblenden den Inhalt automatisch löschen zu lassen?
Das wär nämlich noch cooler :D

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
11.08.2015 19:50:19
Esther
Hat davon sonst noch jemand eine Ahnung und könnte mir weiterhelfen?

Tipp, leider keine Hilfe
11.08.2015 19:58:15
AlexG
Hallo Esther,
du solltest den Haken für noch offene Fregen setzten, sonst taucht deine Frage nicht mehr bei den offenen auf.
Gruß
Alex

Anzeige
AW: Tipp, leider keine Hilfe
11.08.2015 20:49:24
Esther
oja, das sollte ich wirklich :))

AW: Bestimmte Anzahl an Zeilen und Spalten einblenden
12.08.2015 15:02:29
Esther
Ich vereinfache meine Frage mal und schreibe genau auf, was ich mir für ein Makro vorstelle:
1. Prüfe in Tabellenblatt A, Zelle E40, welcher Wert darin steht (der kann von 0 bis 40 gehen).
2. Füge daraufhin so viele neue Zeilen (0 - 40) in Tabellenblatt B ein.
3. Die neuen Zeilen sollen jeweils über den Zeilen 109, 188, 204 und 250 eingefügt werden (soviel ich verstehe, wird das Makro 4x angelegt, für jede hier genannte Zeile separat und wird nacheinander abgespielt oder so).
4. Diese neuen Zeilen sollen die Formatierung und die Formeln der unter ihr liegenden Zeile übernehmen (Zellen- und Spaltenbezug z.T. variabel, z.T. fix, siehe Bsp.datei)
Das wars auch schon!
Bsp.datei habe ich in einer anderen Antwort von mir eingefügt.
Ich bin gespannt!

Anzeige
unklare Angaben
12.08.2015 16:20:22
Michael
Hi Esther,
Du machst es uns nicht einfach, Dir zu helfen.
Ich finde Deine Angaben widersprüchlich und ungenügend.
Im Detail beziehe ich mich auf Deine Datei 99479 und:
10.08.2015 16:27:24: Tabellenblatt A - es gibt kein Tabellenblatt A; es gibt Blätter von Tabelle1 bis Tabelle4 oder eben die Namen: Tabelle "Startseite" - wenn Du Deine Angaben entweder durchnummerierst oder den Namen angibst, muß man nicht suchen.
10.08.2015 16:27:24: in E40 ein Dropdown - nein, das ist in E38
12.08.2015 15:02:29: wie oben, nur sind es auf einmal Werte von 0 bis 40 statt 0 bis 16 - in der Datei sind es 16.
*Was* ist nun zu tun? Die Werte aus E38 für das Einfügen von Zeilen verwenden oder die (möglicherweise abweichenden) von E40?
11.08.2015 14:57:24: sollen die *kompletten Spalten* in "Startseite" geleert werden (oder nur die Werte im Bereich der Zeilen x bis y)?
Oder sollen die korrespondierenden Zeilen in "Summary" entfernt werden?
12.08.2015 15:02:29: jeweils über den Zeilen 109 usw. - weicht ab, in "Summary" sind es 65 usw.
D.h., die vorhandenen Werte in Zeile 65 (insbesondere "Gesellschaft O") *bleiben bestehen*, ebenso wie die drei rot markierten Zeilen 66 bis 88?
Oder sollen *anstelle* des rot markierten Bereichs n Zeilen eingefügt werden?
**************************************
Genug.
Die Spalten in "Startseite" kannst Du so leeren:
       End If
       Tabelle1.Columns("Z:Z").Resize(, 16 - Target.Value + 1).ClearContents
Application.ScreenUpdating = True
End If
Schöne Grüße,
Michael

Anzeige
AW: unklare Angaben
12.08.2015 18:42:34
Esther
So, jetzt aber!
Sorry für so viel Verwirrung und Ungereimtheiten! Ich war zwischendurch selber ganz durcheinander :/ und ich hab hierauch irgendwie zwei Bsp.dateien. man o man...
aber jetzt ist das Dokument "fix" und ich weiß, was ich wirklich will ;)
am liebsten hätte ich das Dokument so veröffentlicht, wie es ist, ohne Verfremdung. Aber das Risiko ist zu hoch...
- Das Ausblenden und Einblenden der Spalte ist erledigt. Haken dran!
- Das Entfernen von Werten in den ausgeblendeten Spalten ist erledigt. Ebenfalls Haken dran!
Einzig und allein steht jetzt aus und dabei beziehe ich mich nur auf die Datei 99479:
- Werte aus E38 ("Startseite") für das Einfügen von Zeilen verwenden
- Zeilen auf dem Blatt "Summary" einfügen
So, jetzt genauer, was da eingefügt werden muss:
- Die roten Bereiche = IST-Zustand
- Neue Zeilen sollen ANSTELLE des roten Bereiches eingefügt werden; Anzahl der neuen Zeilen siehe E38 auf "Startseite"
- Neue Zeilen sollen Formeln haben. Diese so, wie sie im roten Bereich bereits drin sind. Ist dies verständlich? Mittlerweile haben sich die Formeln z.T. geändert bzw. der Bezug ist ein anderer geworden, da ich noch ein Hilfsblatt einbauen musste. Auch die Prozente, die da drinstehen, werden jetzt aus einem anderen Blatt geholt und nicht mehr reingeschrieben...
Es reicht mir aber völlig, wenn mir erklärt wird, wie ich das Makro anpassen muss (also wo genau die aktuellen Formeln reinschreiben und an welcher Stelle muss ich die Zell- und Spaltenbezüge anpassen, da ja das aktuelle Dokument etwas andere Zeilennr. hat!)
Eigentlich ist das nicht so kompliziert, ich kann mich nur schwer ausdrücken^^
Verwirrt das noch mehr, wenn ich das aktuelle und "fixe" Dokument verfremde und hochlade oder bleiben wir beim "99479"? Mir wär beides recht, bloß kann ich das aktuelle erst morgen früh uploaden...
DANKE!!

Anzeige
genau, jetzt aber!
13.08.2015 22:01:44
Michael
Hi Esther,
Excel "spuckt" immer bei verbundenen Zellen wie hier im untersten, rot markierten Bereich. Hebe bitte als erstes den Verbund auf, sonst hängt das Makro....
Ich kann Dir Deine Datei nicht wieder ins Netz stellen, weil naturgemäß alle "Verbindungen" zerschossen sind.
Anbei eine Datei mit einem einzelnen Tabellenblatt, das Du in Deine Datei kopieren kannst. Dieses Blatt ist für "interne Daten" gedacht, die der Anwender ja nicht unbedingt sehen muß: es läßt sich ja verstecken: https://www.herber.de/bbs/user/99554.xlsm
Hier sind jedenfalls zwei Buttons, denen Du bitte die jeweilige Sub zuordnest, und zwar aus dem folgenden Code, der in ein Modul gehört:
Option Explicit
Sub zeilen_einfuegen(ByVal n As Long)
Dim wo As Variant
Dim i&, zeilen&, ab&
With Sheets("Interne_Daten")
wo = .Range(.Range("C1").Value)
End With
Stop          ' weiter mit F5 oder F8
Sheets("Summary").Activate
For i = UBound(wo) To LBound(wo) Step -1
'*  Zeilen löschen/einfügen ******
If n  wo(i, 3) Then
'       MsgBox "Zeilen einfügen"
'       Stop
zeilen = wo(i, 1) - wo(i, 2) + n
ab = wo(i, 2) - 1
Rows(ab & ":" & ab + zeilen - 1).Insert
End If
End If
'*  Zeilen löschen/einfügen ******
'*  Daten kopieren + einfügen ******
Sheets("Startseite").Range("K38").Resize(, n).Copy
Range("B" & wo(i, 1)).PasteSpecial Paste:=xlPasteValues, _
Transpose:=True
If i  63 Then Stop
If Sheets("Summary").Range("A" & i).Value  "" Then
If Mid(Sheets("Summary").Range("A" & i).Value, 1, 1) = "B" Then
Sheets("Interne_Daten").Range("C" & z) = i
aus = aus & Sheets("Summary").Range("A" & i).Value
End If
If Mid(Sheets("Summary").Range("A" & i).Value, 1, 1) = "E" Then
Sheets("Interne_Daten").Range("D" & z) = i
aus = aus & ":" & Sheets("Summary").Range("A" & i).Value
Sheets("Interne_Daten").Range("B" & z) = aus
Sheets("Interne_Daten").Range("E" & z).FormulaLocal = "=D" & z & "-C" & z
aus = ""
z = z + 1
End If
End If
Next
Sheets("Interne_Daten").Range("C1") = "C3:E" & z - 1
End Sub
Und: weil alles, was mit Makro passiert, nicht rückgängig zu machen ist, leg zuvor ne Kopie der Daten an - oder TESTE MIT EINER KOPIE.
Happy Exceling,
Michael

Anzeige
AW: supi, aber Laufzeitfehler?!
14.08.2015 15:03:23
Esther
Das ist ja geil :D
Funktioniert FAST. Es erscheint ein Laufzeitfehler und es werden nur Zeilen ab Z.65 eingefügt. Die unteren Teile bleiben leer bzw so wie sie vorher waren... ich habe bestimmt was falsch eingetragen / zugeordnet, oder?

Hast Du auch wirklich...
14.08.2015 18:32:08
Michael
... überall da, wo es sein soll, die "Markierungen" angebracht?
Blatt Summary: A65: B (oder B1, dann wird es nach dem Ausführen des Makros im oberen Button nämlich schön mit Nr. angezeigt) A69: E (oder E1), usw. für Deine 4 Bereiche.
*Wenn* Du das gemacht hast, sieht es auf dem Blatt "Interne Daten" links oben nämlich so aus, nachdem Du den oberen Button gedrückt bzw. die Sub zeilen_ermitteln() ausgeführt hast.
Userbild
Daran siehst Du, daß zu jedem "B" auch ein "E" existiert.
Ich seh grad, daß die Grafik entstanden ist, nachdem ich bereits auf 3-zeilig umgeschaltet hatte; schau Dir am Besten die neue Datei unten an.
Sollte das bei Dir nicht der Fall sein, mußt Du Deine Markierungen überprüfen.
Der Punkt ist: bei dieser ganzen Einfügerei und Löscherei müßte man ansonsten alle Zeilennummern "mitschleppen" und bei jeder Änderung mitrechnen, das ist derart umständlich, daß ich hier eher eine Fehlerquelle sehe, als wenn Du die Markierungen eingibst.
Damit Dir kein Anwender reinpfuscht, kannst Du die Markierungen ja "schützen".
Eine ganz andere Möglichkeit ist mir noch durch den Kopf gegangen: man könnte ja auch die max. Anzahl von Zeilen stehen lassen und nur die Formeln jeweils überschreiben bzw. löschen, je nach Datenmenge.
Genau, und die unbenutzten ausblenden. Das wäre unterm Strich weniger Rechnerei, und man hätte den Vorteil, daß sich die Zeilennummern dadurch nicht ändern.
Naja, bei mir erscheint kein Laufzeitfehler, aber ich habe zum Testen eine Reihe stops im code, da springt Excel in den VB-Editor, und Du kannst mit F5 (bis Ende oder nächstem stop) oder F8 (zeilenweise) weiterlaufen lassen.
Ich schick Dir mal die Datei zurück, aber, wie gesagt, die "Verweise/Bezüge" sind naturgemäß zerschossen: https://www.herber.de/bbs/user/99582.xlsm
Schöne Grüße,
Michael

Anzeige
AW: Hast Du auch wirklich...
14.08.2015 19:48:50
Esther
Stimmt! Jetzt versteh ich auch wirklich, was du mit Markierung meinst... und nein, das hab ich nicht gemacht :/
Hol ich nach und melde mich dann, spätestens Montag. Oder auch heute noch ;)
Deine andere Möglichkeit wär ja auch was! Wenn ich dich richtig verstanden habe, so muss das (fast) die gleiche Idee sein, die mir vorhin auch durch den Kopf spukte für ein Excel-Sheet. Hier habe ich die Frage gestellt: https://www.herber.de/forum/messages/1442367.html
Ich mach nämlich grad ganz viel mit Makro, größtenteils aber (noch) nicht selber. Ich bin noch ganz am Anfang mit Lernen :)
Danke, ganz lieben Dank für soviel Zeit von dir!!

Anzeige
Genau,
15.08.2015 10:16:19
Michael
Esther,
den anderen Thread hatte ich nebenbei auch gesehen, mich aber nicht dazu geäußert.
Naja, eine Geschichte wollte ich noch loswerden: ich habe meinen Lösungsansatz bewußt nicht in Dein "aufrufendes Makro" eingearbeitet, damit Du Dich in die Einzelteile reindenken kannst.
Noch wichtiger finde ich aber, daß solche Ereignisse wie das "Worksheet_Change" wirklich bei fast jedem Tastendruck ausgelöst werden.
Als EDV-Urgestein schmerzt mich die Rechenleistung, die dabei verbraten wird, aber darum geht es nicht, denn "die Kiste" ist auch mit der Ereignisbehandlung schneller als unsere Eingaben.
Es geht vielmehr um den Büroalltag, wo andauernd das Telefon klingelt, Kollegen mit irgendwas nerven usw., und wenn Du bei Deiner Geschichte "eine falsche Taste drückst" (oder die Azubine mal schnell probiert, was passiert, wenn man in der Box den Wert von 15 auf 3 setzt), sind alle Deine zuvor gemachten Eingaben schnurstracks wieder gelöscht. (*)
Ich mag natürlich auch keine Kaskaden von Sicherheitsabfragen, aber überleg Dir mal, ob Du nicht auf das Worksheet_Change verzichtest und einen Button neben Dein Listenfeld machst: dann ist die Auswahl der Zahl eine Sache und die Ausführung des Makros eine andere - und es wird eben nur dann ausgeführt, wenn man es wirklich beabsichtigt.
Schöne Grüße,
Michael
(*) Jetzt fällt mir noch ein Lösungsansatz ein: man könnte Deine "summary" als eine Art Formular gestalten, in dem z.B. nur die B-Markierungen gesetzt sind, und aus dem man via Makro dann bei jedem Makro-Aufruf ein weiteres Blatt erzeugt, in dem das Formular mit Daten versehen wird. Das ist bis auf ein bißchen Schreibarbeit nicht komplizierter zu programmieren, und Du hast den Vorteil, daß einmal errechnete summaries (Speichern etwa mit sum1, sum2 oder sum150815 oder s_Projekt5 usw.) nicht wieder überschrieben werden, sondern weiterhin zur Verfügung stehen.

AW: Mein Dokument...
15.08.2015 13:52:44
Esther
...ist ein lebendes Dokument, die einmal gemachten Angaben werden ca. monatlich oder zweimonatlich über ca. ein Jahr lang geändert und überschrieben - von ein und derselben Person.
Die Sache mit dem Zahlen-Dropdown ist schon eine andere. Die Zahl wird einmal ausgewählt und sie steht dann, wird vielleicht ein- oder zweimal geändert. Zu 99% wird eh nur max. "10" ausgewählt. Mehr kommt so gut wie nie vor. Das Dokument wird von vll 30 Leuten verwendet, jede Person hat dabei sein eigenes!
Daher sehe ich kein Problem beim Worksheet_Change ;) aber ich probier es aus! Vielleicht mache ich es dann doch so mit den Buttons neben dem Dropdown...
Deine weitere Idee mit dem Formular ist auch gut, aber für dieses Dokument nicht von Vorteil. Die Summary soll tatsächlich immer überschrieben werden, wenn sich auf den anderen Blättern was ändert. Versionierung o.ä. ist nicht gewünscht.
Das "richtige" Dokument umfasst natürlich viel viel mehr Blätter und Tabellen und haste nicht gesehn! Hab ich alles für dieses Makro rausgelöscht. Und neue Blätter würden das ganze irgendwann sprengen.
Ich melde mich demnächst zurück!
VG, Esther

Zeilen ausblenden
15.08.2015 10:48:38
Michael
Hi Esther,
ich nochmal: ich habe im anderen Thread gepostet, daß die Antwort hier steht (nicht, daß sich noch mal jemand die doppelte Arbeit macht).
Anbei die Datei mit zwei neuen Buttons zum Zeilen aus- bzw. einblenden: https://www.herber.de/bbs/user/99589.xlsm
Ciao,
Michael

AW: Danke und kurze Verständnisfrage
15.08.2015 16:27:38
Esther
Das funktioniert ganz gut :)
Werd mal ein bisschen rumprobieren mit mehr Zeilen und weniger und so...
Was ich noch nicht verstehe: Es kommt zwischndrin immer die Meldung (das Makrofenster tut sich auf) "mit F5 oder F8 weitermachen". Hast du das nur gemacht, damit ich das nachvollziehen kann oder kommt das jetzt immer? Kann ich diesen Befehl auch rausnehmen, sodass das Makro von allein weiter macht? Ich meine, was ist wenn ein Anwender null Ahnung von Makros hat und dann diese Meldung kommt und er nicht weiterklickt und womöglich im Makro selbst was zerschießt oder so?

AW: Danke und kurze Verständnisfrage
16.08.2015 11:28:16
Michael
Hi Esther,
das liegt daran, daß da "stop" steht: das ist so was Ähnliches wie ein "Haltepunkt" (die kann man ja auch "grafisch" setzen), mit dem man die Abarbeitng des Makros an bestimmten Stellen anhalten kann.
Du kannst so ein stop an beliebiger Stelle einfügen, insbesondere wenn sich ein Makro "seltsam" verhält. F5 entspricht der "Play"-Taste (Du weißt schon, das Dreieck) im VB-Editor, mit F8 kann man zeilenweise weiter und sich die Werte in den Variablen (zur Laufzeit des Makros) ansehen, wenn man die Maus drüberhält.
Kurzum: Du kannst die stops jederzeit löschen oder auskommentieren, wenn alles richtig funzt.
Schöne Grüße,
Michael
P.S.: Ja, ja, "der Anwender": wie gesagt, ich habe gerade die letzten Sachen in einzelne Häppchen verpackt, damit man auch am Bildschirm nachvollziehen kannt, ob z.B. das Makro "richtige Markierungen" findet (wie in der Grafik oben).
Eine rudimentäre Fehlerbehandlung könnte hier z.B. so aussehen:
https://www.herber.de/bbs/user/99610.xls
Wenn Du die ganze Geschichte weitergeben willst, kommst Du nicht drumherum, ein mehr oder weniger ausgefuchstes Errormanagement einzubauen, denn sonst wird es über kurz oder lang passieren, daß der Anwender eben doch im VBE landet.
Lies dazu bitte u.a.: https://www.herber.de/mailing/vb/html/vastmonerror.htm
und http://www.online-excel.de/excel/singsel_vba.php?f=144

341 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige