Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
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

Materialliste

Materialliste
13.12.2021 14:25:59
Christian
Schönen Tag!
Möchte gerne Tabellenblatt kopieren
Habe hier dieses dazu gefunden:

Sub NEUES_JAHR()
Dim strName As String
ActiveSheet.Copy After:=Sheets(Sheets.Count)
strName = InputBox("Name des neuen Blattes - und zum Kopieren OK klicken")
If Not strName = "" Then
ActiveSheet.Name = strName
Else
Exit Sub
End If
Rows("4:575").Select
Selection.EntireRow.Hidden = False
End Sub
funktioniert super
Ist es möglich, in diesem Scrip folgendes einzubinden:
Zelle A1+1
Zellen von bis einblenden und in gewissen Bereichen die Eingaben und nicht die Formeln zu löschen?
Vielen Dank für Hilfe
Chrischtian

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

Betreff
Datum
Anwender
Anzeige
AW: Materialliste
13.12.2021 14:50:13
Yal
Hallo Christian,
am Ende von deinem Skript werde die Zeilen 4 bis 575 auf Hidden=False gesetzt. Auf Deutsch heisst es "versteckt = nein", spricht einblenden.
Auf genau diese Art und Weise kannst Du die Zeilen 1 bis 2 einblenden.
VG
Yal
AW: Materialliste
13.12.2021 17:00:51
Christian
Vielen Dank
so funktionierte es:

Sub NEUES_JAHR()
Dim strName As String
ActiveSheet.Copy After:=Sheets(Sheets.Count)
strName = InputBox("Name des neuen Blattes - und zum Kopieren OK klicken")
If Not strName = "" Then
ActiveSheet.Name = strName
Else
Exit Sub
End If
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Range("B4").Select
ActiveWindow.FreezePanes = True
Range("D11").Select
End Sub
Fein wäre, wenn der Name des Blattes in A1 übernommen werden könnte...
Die Eingaben vom kopierten Blatt entfernt werden würden (Formeln sollten erhalten bleiben)
und dann wäre dann noch eine Spalte vom Letzter Tabelle in die Neue kopiert werden würde.
vielen vielen Dank!
Anzeige
AW: Materialliste
13.12.2021 17:43:47
Yal
Hallo Christian,
mit

strName = ActiveSheet.Range("A1").Value
lest Du den Inhalt der Zelle A1 aus dem aktiven Blatt und speichert die Wert in die Variable strName.
Deine Beschreibung ist sonst nicht präzise genug, um daraus etwas entstehen zu lassen. Computer können keine Gedanken lesen. Und der/diejenige, der/die sie programmiert auch nicht, solang Du es nicht selber bist.
"Die Eingabe löschen": wo stehen die Eingaben? Sind alle Zellen, die eine feste Wert (spricht keine Formel) enthalten, als "Eingabe" zu verstehen? Wie sonst könnten die Stellen, wo diese "Eingabe" zu finden sind, definiert werden.
"Eine Spalte vom letzten Tabelle": welche Spalte? Die ganze Spalte? Nur ein Teil? Es werden präzise und eindeutige Anweisungen erwartet. Nur so kannst Du ein Computer programmieren. Was ist mit "letzte Tabelle" gemeint? Das Blatt, wovon eine Kopie gemacht worden ist? Dann wäre es leicht, die besagte Spalte nicht zu löschen. Wenn es sich um eine andere Tabelle (in Excel-Vokabular: Blatt) handelt, dann hat diese eine Name.
VG
Yal
Anzeige
AW: Materialliste
13.12.2021 18:31:21
Christian
Sub NEUES_JAHR()
Dim strName As String
ActiveSheet.Copy After:=Sheets(Sheets.Count)
strName = InputBox("Name des neuen Blattes - und zum Kopieren OK klicken")
If Not strName = "" Then
ActiveSheet.Name = strName
Else
Exit Sub
End If
Der Name des Neuen Blattes wird mit diesem Macro vergeben.
Und dieser vergebener Name sollte dann auch in "A1" landen.
So war das gemeint.
Aber vielen Dank
AW: Materialliste
13.12.2021 18:54:35
Yal
Hallo Christian,
Habe ich nicht gerade vom "präzise Vorgaben" gesprochen?
A1 vom welchem Blatt? Die Vorlage oder das neu erzeugte Blatt?
Übernehme einfach blind foglende Code und lasse dich überraschen, was dabei passiert.
Nur soviel vorab: es geht nicht selbständig ins Internet, um Malware zu runterladen. Aber wenn Du nicht weisst, was Du willst, dann bekommst Du eben irgendwas, was mit hohem Wahrscheinlichkeit nicht macht, was Du erwartest.
Gute Nacht!

Sub BlattFürNeuesJahr_erzeugen()
Dim strName As String
Dim WS As Worksheet
'Name des neuen Blatts abfragen
strName = InputBox("Name des neuen Blattes - und zum Kopieren OK klicken")
'Name aus der Zelle A1 des aktuellen Blatts lesen
If strName = "" Then
MsgBox "Name für neue Blatt ist nicht definiert."
Exit Sub
End If
'Name speichern in A1 de aktiven Blatt
strName = ActiveSheet.Range("A1").Value
'Blatt kopieren
ActiveSheet.Copy After:=Sheets(Sheets.Count) 'kopieren.
'Das neue Blatt wird aktiv, spricht ActiveSheet ist jetzt das neue Blatt
ActiveSheet.Name = strName
ActiveSheet.Rows.Hidden = False 'Alle Zeilen sichtbar
ActiveWindow.FreezePanes = False 'bisherige Freeze lösen
Range("B4").Select
ActiveWindow.FreezePanes = True 'neuer Freeze oben links von B4
Range("D11").Select
End Sub
VG
Yal
Anzeige
AW: Materialliste
13.12.2021 19:52:08
Christian
Sorry, es ist wahrlich nicht leicht mit einem Anti
Du last hier den Namen von A1 auslesen, verstehe ich das richtig?
Ich allerdings vergebe den Namen für das neue Blatt und hätte gerne, dass dieser in A1 übernommen wird.

Sub JÄNNER()
' JÄNNER Makro
' Jänner - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Range("B6").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=21
Rows("61:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D11").Select
End Sub

Sub FEBRUAR()
' FEBRUAR Makro
' Februar - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:61").Select
Selection.EntireRow.Hidden = True
Range("B63").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=24
Rows("118:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D68").Select
End Sub

Sub MÄRZ()
' MÄRZ Makro
' März - Rest ausgblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:118").Select
Selection.EntireRow.Hidden = True
Range("B120").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=24
Rows("175:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D125").Select
End Sub

Sub APRIL()
' APRIL Makro
' April - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:175").Select
Selection.EntireRow.Hidden = True
Range("B177").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=18
Rows("232:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D182").Select
End Sub

Sub MAI()
' MAI Makro
' Mai - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:232").Select
Selection.EntireRow.Hidden = True
Range("B234").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=27
Rows("289:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D239").Select
End Sub

Sub JUNI()
' JUNI Makro
' Juni - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:289").Select
Selection.EntireRow.Hidden = True
Range("B291").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=21
Rows("346:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D296").Select
ActiveWindow.SmallScroll Down:=-12
End Sub

Sub JULI()
' JULI Makro
' Juli - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:346").Select
Selection.EntireRow.Hidden = True
Range("B348").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=18
Rows("403:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D353").Select
End Sub

Sub AUGUST()
' AUGUST Makro
' August - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:403").Select
Selection.EntireRow.Hidden = True
Range("B405").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=21
Rows("460:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D410").Select
End Sub

Sub SEPTEMBER()
' SEPTEMBER Makro
' September - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:460").Select
Selection.EntireRow.Hidden = True
Range("B462").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=21
Rows("517:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D467").Select
End Sub

Sub OKTOBER()
' OKTOBER Makro
' Oktober - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:517").Select
Selection.EntireRow.Hidden = True
Range("B519").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=18
Rows("574:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D524").Select
End Sub

Sub NOVEMBER()
' NOVEMBER Makro
' November - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:574").Select
Selection.EntireRow.Hidden = True
Range("B576").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll Down:=18
Rows("631:686").Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-55
Range("D581").Select
End Sub

Sub DEZEMBER()
' DEZEMBER Makro
' Dezember - Rest ausgeblendet
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Rows("5:631").Select
Selection.EntireRow.Hidden = True
Range("B633").Select
ActiveWindow.FreezePanes = True
Range("d638").Select
End Sub

Sub GANZES_JAHR()
' GANZES_JAHR Makro
' Alles einblenden
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Range("B4").Select
ActiveWindow.FreezePanes = True
Range("D11").Select
End Sub

Sub NEUES_JAHR()
Dim strName As String
ActiveSheet.Copy After:=Sheets(Sheets.Count)
strName = InputBox("Name des neuen Blattes - und zum Kopieren OK klicken")
If Not strName = "" Then
ActiveSheet.Name = strName
Else
Exit Sub
End If
Cells.Select
Selection.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Range("B4").Select
ActiveWindow.FreezePanes = True
Range("D11").Select
End Sub
Wenn ein neues Jahr angelegt wird, werden alle Monate eingeblendet, kopiert, Alte Einträge in den gewissen Bereichen gelöscht.
Und die letzte Ist-Stand vom Dezember 2021 in Jänner 2021 kopiert...
Die starre Tabelle soll einfach ein wenig dynamischer werden...
Vielen Dank für die Hilfe.
Anzeige
AW: Materialliste
13.12.2021 22:22:47
Yal
Hallo Christian,
Kein Problem, ich habe immer Geduld für Leute, die VBA lernen/Verstehen wollen.
Und sorry, es war verkehrt. Nicht:

strName = ActiveSheet.Range("A1").Value
sondern

ActiveSheet.Range("A1") = strName
Nochmal auf das Thema Genauigkeit der Beschreibung
"Ich [..] hätte gerne, dass dieser in A1 übernommen wird."
In welchen A1? Wenn Du 2 Blätter hast (und so ist es mindestens nach der ersten Kopie), dann hast Du zwei A1: ein in das original und ein in die Kopie.
Deine 12 Subs sind gut. Man könnte sie aber kondensieren:

Sub Monat_behandeln(FreezePos As String, Sichtbar As String, Posit As String)
Cells.EntireRow.Hidden = False
ActiveWindow.FreezePanes = False
Range(Freeze).Select
ActiveWindow.FreezePanes = True
Rows("5:686").Hidden = True
Rows(Sichtbar).Hidden = False
Range(Posit).Select
End Sub
Sub JÄNNER()
Monat_behandeln "B6", "5:61", "", "D11"
End Sub
Sub FEBRUAR()
Monat_behandeln "B63", "62:117", "D68"
End Sub
Sub MÄRZ()
Monat_behandeln "B120", "119:174", "D125"
End Sub
Sub APRIL()
Monat_behandeln "B177", "176:231", "D182"
End Sub
Sub MAI()
Monat_behandeln "B234", "233:288", "D239"
End Sub
Sub JUNI()
Monat_behandeln "B291", "290:345", "D296"
End Sub
Sub JULI()
Monat_behandeln "B348", "347:402", "D353"
End Sub
Sub AUGUST()
Monat_behandeln "B405", "404:459", "D410"
End Sub
Sub SEPTEMBER()
Monat_behandeln "B462", "461:516", "D467"
End Sub
Sub OKTOBER()
Monat_behandeln "B519", "518:573", "D524"
End Sub
Sub NOVEMBER()
Monat_behandeln "B576", "575:630", "D581"
End Sub
Sub DEZEMBER()
Monat_behandeln "B633", "632:686", "D638"
End Sub
Aus einer Schulung, den ich aktuell durchlese:
"Das Üben von analytischem, algorithmischem Denken (computational thinking) hilft dabei, über geschäftliche Probleme so nachzudenken, dass computergestützte Problemlösungen schneller und einfacher gefunden werden. Methoden des analytischen, algorithmischen Denkens (computational thinking) sind Dekonstruktion, Mustererkennung, Abstraktion und Algorithmus-Design."
VG
Yal
Anzeige
AW: Materialliste
14.12.2021 09:16:04
Piet
Hallo
ich erlaube mir mal eine sehr höfliche Frage: - bleiben die Zeilen immer genau in der Reihenfolge bestehen? Oder verschiebt sich das schon mal nach unten?
In dem Fall wäre es besser den Monat zu suchen und den dynamischen Bereich festzulegen. Ohne Beispieldatei ist der Tabellenaufbau aber ein reines Ratespiel.
Noch ein Tipp von mir: - statt ein Blatt mit Werten zu kopieren ist es sinnvoller sich ein leeres Blatt als Jahresvorlage zu erstellen und die leere Volage zu kopieren.
Die leere Vorlage kann man extern speichern, oder das Blatt einfach ausblenden.
In einem anderen Thread für Corona Statistik in die Schweiz erstellte ich das neue Blatt aus der Vorlage durch Doppelklick im aktiven Baltt.
Thread: - Makro - ReSt 07.12.2021 20:25:18 - da gibt es auch die letzte Beispieldatei von mir. https://www.herber.de/bbs/user/149675.xlsm
Falls neugierig einfach mal anschauen und Doppelklick machen.
mfg Piet
Anzeige
AW: Materialliste
14.12.2021 09:27:05
Piet
Nachtrag - und offen stellen vergessen
wenn ihr eine Vorlage über Doppelklick erstellt kann man direkt bei der Nameseingabe über Inputbox den Monat festlegen, im neuen Blatt in die Zelle A1 schreiben und die Zeilen zum ausblenden über das bestehende Marko von Yal mit Select Case Monat auswerten. Wäre das eine sinnvolle Verbesserung?
mfg Piet
AW: geschlossen oWt
17.12.2021 19:37:45
Piet
,,,

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige