Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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

Steuerelemente

Steuerelemente
16.05.2021 09:02:47
Nico
Hallo zusammen,
Ich habe eine Tabelle mit vielen Steuerelementen in den Zeilen.
Wenn ich das Steuerelement anklicke soll die Zelle darunter markiert werden,
für mein relativ ausgezeichnetes Makro. Wie bekomme ich das hin?
Momentan habe ich für jede Zeile das Makro geschrieben, was natürlich elendig lang ist. Es wird ja in jeder Zeile immer das Gleiche ausgeführt beim Klick auf den Button.
Danke für eure Hilfe.
Gruß Nico

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelemente
16.05.2021 09:05:18
Hajo_Zi
Hallo Nico,
Du willst als 1.048.576 Steuereelemente machen.
Warum nicht einfach auf die Zeilenbeschriftung klicken, ist auch nicht mehr.
GrußformelHomepage
AW: Steuerelemente
16.05.2021 09:30:42
Nico
Hallo,
vielen Dank für den Tip. Leider bin ich froh, Makros mit dem Rekorder zu erstellen und diese ändern zu können. Ich kenne mich in VBA 0 aus. Sorry.
Gruß Nico
AW: Steuerelemente
16.05.2021 09:33:24
Hajo_Zi
Hallo Nico,
Du hast nicht auf meinen Beitrag gheantwortet. VBA hatte ich nicht vorgeschlagen.
Ich schreibe nicht für den Papierkorn. Ich bin dann raus.
Viel Erfolg noch.
Gruß Hajo
Anzeige
AW: Steuerelemente
16.05.2021 10:00:39
Nico
Hallo Hajo,
ich dachte das es VBA bezogen war. Wenn ich eine Lösung hätte wie du sie vorgeschlagen hast, wäre ich nicht hier im Forum. Ich weiß nicht wie ich diesen Vorschlag umsetzen soll. Ein kleiner Lösungsansatz wäre cool.
Vielen Dank.
Gruß Nico
AW: Steuerelemente
16.05.2021 10:02:52
Hajo_Zi
Hallo Nico,
ist Excel das falsche Programm, wenn Du nicht mal auf die Zeilennummer klicken kannst?
Gruß Hajo
AW: Steuerelemente
16.05.2021 12:56:21
ralf_b
vielleicht erklärst du etwas ausführlicher was da vor sich gehen soll. Im Grunde hat Hajo recht. Klicke auf die Zeilennummer links am Blattrand und die ganze Zeile wird markiert.
Man könnte mutmaßen das du nur einen bestimmten Bereich in der der Zeile markieren möchtest, um irgend etwas damit zu erledigen.
Dann stellt sich die Frage was du mit dem markierten Bereich vor hast, denn Markierungen werden nur selten benötigt um Zellen zu bearbeiten.
gruß
rb
Anzeige
AW: Steuerelemente
16.05.2021 14:17:34
Nico
Hallo,
ich habe die Datei mal hochgeladen.
Wenn ich ausbuchen klicke, soll der Rest in die Schrottliste gebucht werden. Momentan ist es so das ich jedem Button 1 Makro zugewiesen habe. Es funktioniert ist denke aber so sehr kompliziert.
Wenn dieses Blatt funktioniert möchte ich für weitere Produkte Blätter anlegen.
Wie gesagt ich bin in Excel kein Profi. Habe mir alles selber beigebracht. Manchmal helfen nur Lösungsansätze aber manchmal benötigt man intensivere Information um es zu verstehen.
Vielen Dank.
https://www.herber.de/bbs/user/146215.zip
Gruß Nico
Anzeige
AW: Steuerelemente
16.05.2021 23:53:04
ralf_b
Ich habe dir die Bereichsauswahl umgestellt. Das Ausblenden ist unnötig. Ein hochscrollen des Bereiches reicht aus.
Die zig Makros habe ich dir reduziert auf je eines.
Ein Problem sehe ich noch. Die vielen Ticket und Ausbuchen buttons fressen schon so ne Menge Platz. Wenn du die noch verdoppelst mit Kopien dieses Blattes, dann wirds irgend wann sehr träge. Evtl. findest du eine andere Lösung um die einzelnen Zeilen zu buchen. Vielleicht reicht es aus einen Button für den ganzen Teilbereich zu nutzen.
https://www.herber.de/bbs/user/146229.xlsm
gruß
rb
Anzeige
AW: Steuerelemente
17.05.2021 10:06:44
Nico
Hallo Ralf,
das ist ja schon richtig super. So inetwa war mein Plan, aber leider habe ich nicht so die Kenntnisse in VBA. Wenn ich das jetzt richtig erkannt habe ist das eine Makro (z.B. Ausbuchen) zur Feststellung welcher Button geklickt wurde und das andere wird dann ausgeführt. So eine Lösung habe ich schon gegoogelt leider nicht gefunden.
Die Sache mit dem Button nur einen zu nehemen wäre toll, aber woher will man wissen auf welche Zeile er angewendet werden soll?
Eine Idee wäre noch, dass man Ausbuchen und Ticket nur in die Zelle schreibt und mit einem doppelklick das Makro auslöst.
Schön wäre es, wenn du mir die Zeilen in den Makros kommentierst, weil ich nicht weiß, was mit welcher Zeile und Befehl erreicht wird(ist es hier egeal in welcher Spalte/Zeile sich der Button befindet?/. Ich möchte es verstehen um es auch in anderen Fällen anwenden zu können und wenn ein Fehler auftritt ihn auch zu finden.
Aber vielen Dank für deine Mühe. Das ist schon echt super.
Gruß Nico
Anzeige
AW: Steuerelemente
17.05.2021 14:42:27
hary
Moin
Test mal so mit Doppelklick. Code in den Code von Blatt "HEA"
Doppelklick in eine Zelle der Zeile die uebertragen werden soll.
Ist ohne Pruefungen und sonstiges. Du hast ja schon angedeutet dass da noch mehr kommmt. ;-)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long
Dim Bezeichnung As Long
Cancel = True
Worksheets("HEA").Unprotect
Bezeichnung = [A:A].Find(What:="HEA*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
'-- usw- ----
End With
Worksheets("HEA").Protect
End Sub
gruss hary
Anzeige
AW: Steuerelemente
17.05.2021 17:00:16
Nico
Hallo Harry,
funktioniert prima. Durch die Kommentierung ist es mir auch leicht gefallen es so anzupassen das alle Werte die ich brauche kopiert werden.
Problem ist, dass auch die Zellen vom Wareneingang kopiert werden, wenn man dort doppelklickt. Und die Zeile die ausgebucht wurde muss geleert werden.
Aber das ist eine gute alternative zu den Buttons.
Ihr seid echt spitze. Ich bin Anfänger und will es verstehen und VBA anwenden lernen.
Gruß Nico
AW: Steuerelemente
18.05.2021 07:26:27
hary
Moin Nico
Habe deine Idee
Eine Idee wäre noch, dass man Ausbuchen und Ticket nur in die Zelle schreibt und mit einem doppelklick das Makro auslöst
mal aufgenommen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long
Dim Bezeichnung As Long
If Target = "Ausbuchen" Or Target = "Ticket" Then '-- ausfuehren wenn Zellinhalt: Ausbuchen oder Ticket
Cancel = True
Worksheets("HEA").Unprotect
Bezeichnung = [A:A].Find(What:="HEA*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
'-- usw- ----
End With
Cells(Target.Row, 1).ClearContents '--Loescht in SpalteA
'--usw.
End If
Worksheets("HEA").Protect
End Sub
gruss hary
.
Anzeige
AW: Steuerelemente
18.05.2021 15:51:36
Nico
Hallo Harry,
so daran gedacht habe ich auch. Das funktioniert auch Super.
bei den Tickets muß ja immer die Bezeihnung in C1000, die Charge in C1001 und die Restlänge in C1002 stehen und die Zellen sollen hier aber erhalten bleiben und nicht geleert werden. Da muss wahrscheinlich eine neue Prozedur her das
If Target="Ticket Rest!" then ... hier weiß ich nicht wie ich ansetzen soll oder liege ich falsch?
Das Makro habe ich jetzt schon so angepasst:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long
Dim Bezeichnung As Long
If Target = "Ausbuchen!" Or Target = "Ticket Rest!" Then '-- ausfuehren wenn Zellinhalt: Ausbuchen oder Ticket
Cancel = True
Worksheets("HEA").Unprotect
Bezeichnung = [A:A].Find(What:="HEA*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
.Cells(lngLetzeZeile + 1, 4) = Cells(Target.Row, 3) '--Stueck
.Cells(lngLetzeZeile + 1, 5) = Cells(Target.Row, 4) '--Rest
End With
Application.ScreenUpdating = false
Cells(Target.Row, 1).ClearContents '--Loescht in SpalteA
Worksheets("HEA").Unprotect
Cells(Target.Row, 2).ClearContents
Cells(Target.Row, 3).ClearContents
Cells(Target.Row, 5).ClearContents
Cells(Target.Row, 6).ClearContents
Cells(Target.Row, 7).ClearContents
Cells(Target.Row, 11).ClearContents
Cells(Target.Row, 12).ClearContents
Cells(Target.Row, 13).ClearContents
Cells(Target.Row, 14).ClearContents
Cells(Target.Row, 15).ClearContents
Cells(Target.Row, 16).ClearContents
Cells(Target.Row, 17).ClearContents
Cells(Target.Row, 18).ClearContents
Cells(Target.Row, 19).ClearContents
Cells(Target.Row, 20).ClearContents
Cells(Target.Row, 21).ClearContents
Application.ScreenUpdating = True
End If
Worksheets("HEA").Protect
End Sub
Danke.
Gruß Nico
Anzeige
AW: mit Doppelklick
19.05.2021 09:46:01
hary
Moin
Teste jetzt mal.
Bei Ausbuchen wird uebertragen nach Schrottliste und geloescht.
Bei Ticket Rest wird uebertragen nach Schrottkiste und nicht geloescht und in C1000 bis 1002 eingetragen.
Das Datum wird in Schrottliste gleich eingetragen. Brauchst den Changecode in Schrottliste nicht mehr.
Habe den Code insgesamt etwas zusammen gefasst.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long
Dim Bezeichnung As Long
If Target = "Ausbuchen!" Or Target = "Ticket Rest!" Then '-- ausfuehren wenn Zellinhalt: Ausbuchen oder Ticket
Application.ScreenUpdating = False
Cancel = True
Worksheets("HEA").Unprotect
Bezeichnung = [A:A].Find(What:="HEA*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
.Cells(lngLetzeZeile + 1, 4) = Cells(Target.Row, 3) '--Stueck
.Cells(lngLetzeZeile + 1, 5) = Cells(Target.Row, 4) '--Rest
.Cells(lngLetzeZeile + 1, 6) = CDate(Format(Now, "dd.mm.yyyy hh:mm")) '--setzt Datum Schrottliste
End With
If Target = "Ausbuchen!" Then '--loescht nur bei Ausbuchen!
Application.EnableEvents = False
Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).ClearContents '--Loescht
Range(Cells(Target.Row, 5), Cells(Target.Row, 7)).ClearContents
Range(Cells(Target.Row, 11), Cells(Target.Row, 20)).ClearContents
ElseIf Target = "Ticket Rest!" Then '--loescht nicht bei Ticket Rest!
Cells(1000, 3) = Cells(Bezeichnung, 1) '-- Bez. nach C1000
Cells(1001, 3) = Cells(Target.Row, 1) '--die Charge nach C1001
Cells(1002, 3) = Cells(Target.Row, 2) '--die Laenge nach C1002
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
Worksheets("HEA").Protect
End Sub
gruss hary
Anzeige
AW: mit Doppelklick
19.05.2021 13:33:25
Nico
Hallo Harry,
ich habe da glaube was falsch rüber gebracht. Wenn ich ausbuchen klicke, sollen die Zellen kopiert werden und geleert. Das klapt auch super.
Wenn ich aber Ticket Rest klicke soll es nicht in die Schrottliste übertragen werden, sondern nur in C1001 usw. die Werte schreiben und ausdrucken. Die Werte werden ja da hingeschrieben, aber in der Schrottliste darf nichts eingetragen werden, wenn ich Ticket Rest klicke.
Wenn ich den gleichen code auf mehrere Tabellenblätter anwenden möchte muss er ja geändert werden oder kann man dieses mit activsheet lösen?
Heißen würden die z.B. HEB, HEM usw. . Die schrotliste soll allerdings immer die selbe sein.
Kannst du mir mal bitte diese Zeile genau erklären?
Es wird in Spalte A die Bezeichnung HEA* gesucht und er sucht den ersten wert über der geklickten zeile oder?
Bezeichnung = [A:A].Find(What:="HEA*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row
Für mich ist es schwierig nachzuvollziehen was im genauen die einzelnen Befehle machen.
Danke.
Gruß Nico
AW: mit Doppelklick
20.05.2021 08:26:06
hary
Moin Nico
Es wird in Spalte A die Bezeichnung HEA* gesucht
Ja, wobei das Sternchen der Platzhalter ist. Also HEA ist ein muss, gefolgt von irgendetwas z.B. HEA xxx
Beim untenstehenden Code ist es der Blattname (Sh.Name). Du schreibst ja: "Heißen würden die z.B. HEB, HEM usw."

SearchDirection:=xlPrevious
xlPrevious sucht von unten nach oben. ab Cells(ActiveCell.Row, 1)
Dieser Code gehoert in den Code DieseArbeitsmappe. Er wirkt bei allen Blaetter ausser: "Schrottliste" und "Vorgaben"
So brauchst du nicht fuer jedes Blatt einen eigenen Code.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long, Bezeichnung As Long
Dim Zelle As Range
If Sh.Name  "Schrottliste" And Sh.Name  "Vorgaben" Then '--wenn Blattname nicht Schrottliste oder Vorgaben
If Target = "Ausbuchen!" Or Target = "Ticket Rest!" Then '-- ausfuehren wenn Zellinhalt: Ausbuchen oder Ticket
Application.ScreenUpdating = False
Cancel = True
Sh.Unprotect
Set Zelle = [A:A].Find(What:=Sh.Name & "*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious)
If Not Zelle Is Nothing Then
Bezeichnung = Zelle.Row
If Target = "Ausbuchen!" Then '--loescht und uebertraegt nur bei Ausbuchen!
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
.Cells(lngLetzeZeile + 1, 4) = Cells(Target.Row, 3) '--Stueck
.Cells(lngLetzeZeile + 1, 5) = Cells(Target.Row, 4) '--Rest
.Cells(lngLetzeZeile + 1, 6) = CDate(Format(Now, "dd.mm.yyyy hh:mm")) '--setzt Datum Schrottliste
End With
Application.EnableEvents = False
Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).ClearContents '--Loescht
Range(Cells(Target.Row, 5), Cells(Target.Row, 7)).ClearContents
Range(Cells(Target.Row, 11), Cells(Target.Row, 20)).ClearContents
ElseIf Target = "Ticket Rest!" Then '--loescht nicht bei Ticket Rest!
Cells(1000, 3) = Cells(Bezeichnung, 1) '-- Bez. nach C1000
Cells(1001, 3) = Cells(Target.Row, 1) '--die Charge nach C1001
Cells(1002, 3) = Cells(Target.Row, 2) '--die Laenge nach C1002
End If
End If
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
Sh.Protect
End Sub
gruss hary
AW: mit Doppelklick
20.05.2021 12:56:39
Nico
Hallo Hary,
leider macht dieser Code nichts mehr. Ich habe mal den ganzen Code aus dem Tabellenblatt eingestellt.
Mit CopyLagerlaenge wird aus der Hilfsspalte der Wert (wird mit sverweis über Wareneingang anhand der Charge ermittelt) als Festwert in Länge kopiert.
Habe es leider nicht hinbekommen, den sverweis in einen Festwert umzuwandeln :(, außer mit einem zusätzlichen Makro.
Ein Festwert ist wichtig, da ja die Besände aufgebraucht werden können und der Rest länger liegen bleibt. Wenn Bestände im Wareneingang auf 0 ist, kann ja die Zeile überschrieben werden bzw. gelöscht und man würde die länge über sverweis nicht mehr finden.
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
If Intersect(Target, Range("A9: i499")) Is Nothing Then
Exit Sub
End If
If Target.Count > 1 Then Exit Sub
If Target = "" Then
Cells(Target.Row, 11).ClearContents
Else:
Cells(Target.Row, 11) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
End If
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
CopyLagerlaenge
ActiveSheet.Protect
Application.EnableEvents = True
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim lngLetzeZeile As Long, Bezeichnung As Long
Dim Zelle As Range
If Sh.Name "Schrottliste" And Sh.Name "Vorgaben" Then '--wenn Blattname nicht Schrottliste oder Vorgaben
If Target = "Ausbuchen!" Or Target = "Ticket Rest!" Then '-- ausfuehren wenn Zellinhalt: Ausbuchen oder Ticket
Application.ScreenUpdating = False
Cancel = True
Sh.Unprotect
Set Zelle = [A:A].Find(What:=Sh.Name & "*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious)
If Not Zelle Is Nothing Then
Bezeichnung = Zelle.Row
If Target = "Ausbuchen!" Then '--loescht und uebertraegt nur bei Ausbuchen!
With Worksheets("Schrottliste")
lngLetzeZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lngLetzeZeile + 1, 1) = Cells(Bezeichnung, 1).Value '--z.B. HEA XX
.Cells(lngLetzeZeile + 1, 2) = Cells(Bezeichnung, 1).Offset(8, 0) '--die lange Nummer in SpaltA
.Cells(lngLetzeZeile + 1, 3) = Cells(Target.Row, 1) '--die Charge aus SpalteA
.Cells(lngLetzeZeile + 1, 4) = Cells(Target.Row, 3) '--Stueck
.Cells(lngLetzeZeile + 1, 5) = Cells(Target.Row, 4) '--Rest
.Cells(lngLetzeZeile + 1, 6) = CDate(Format(Now, "dd.mm.yyyy hh:mm")) '--setzt Datum Schrottliste
End With
Application.EnableEvents = False
Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).ClearContents '--Loescht
Range(Cells(Target.Row, 5), Cells(Target.Row, 7)).ClearContents
Range(Cells(Target.Row, 11), Cells(Target.Row, 20)).ClearContents
ElseIf Target = "Ticket Rest!" Then '--loescht nicht bei Ticket Rest!
Cells(1000, 3) = Cells(Bezeichnung, 1) '-- Bez. nach C1000
Cells(1001, 3) = Cells(Target.Row, 1) '--die Charge nach C1001
Cells(1002, 3) = Cells(Target.Row, 2) '--die Laenge nach C1002
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
End If
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
Sh.Protect
End Sub

Sub CopyLagerlaenge()
ActiveSheet.Unprotect
Application.ScreenUpdating = False
ActiveCell.Offset(0, 29).Range("A1").Select
Selection.Copy
ActiveCell.Offset(0, -28).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub
Vielen Dank für deine Geduld.
Gruß Nico
AW: mit Doppelklick
20.05.2021 13:01:39
Nico
Hmm leider verklickt, dass sieht jetzt nicht so toll aus.
AW: mit Doppelklick
20.05.2021 13:04:35
hary
Moin
Mein letzter Code gehoert nicht in den Code der Tabelle sondern in den Code: DieseArbeitsmappe.
Und der andere Doppelklick-Code, im Blatt, muss weg.
gruss hary
AW: mit Doppelklick
20.05.2021 13:57:20
Nico
Moin,
Perfekt das ist echt eine super Sache. Machst du das Hauptberuflich? Kannst du mir einen guten Tip geben, wo ich mir VBA- Grundkenntnisse aneignen kann.
Gruß Nico
AW: mit Doppelklick
20.05.2021 14:53:03
Nico
Das ist schon echt gut wie schnell du meine Idee umsetzen konntest.
Jetzt muß ich noch versuchen, dass die Resteliste und der Wareneingang absteigend sortiert wird.
Gruß Nico
AW: kleine Hilfe
21.05.2021 09:55:42
hary
Moin Nico
Mit dem Makro wird entweder der Wareneingang- oder Restverwaltungbereich markiert.

Sub markieren_zum_sortieren()
Dim zelle As Range
ActiveSheet.Unprotect
Set zelle = [A:A].Find(What:=ActiveSheet.Name & "*", After:=Cells(ActiveCell.Row, 1), LookIn:=xlFormulas, SearchDirection:=xlPrevious)
If Not zelle Is Nothing Then
Select Case ActiveCell.Row
Case zelle.Row + 1 To zelle.Row + 10  '--wenn die Zeile zwischen zelle.Row + 1 und zelle.Row + 10
'--"Wareneingangsbereich zum sortieren ausgewaehlt"
Cells(zelle.Row + 1, 3).Resize(10, 9).Select
Case zelle.Row + 13 To zelle.Row + 27
'--"Resteverwaltung zum sortieren ausgewaehlt"
Cells(zelle.Row + 13, 1).Resize(15, 21).Select
End Select
End If
ActiveSheet.Protect
End Sub
Darauf kannst du aufbauen und probieren. Sortieren kann mit dem Makrorecorder aufgenommen werden.
Du moechtest ja lernen ;-))
gruss hary
AW: kleine Hilfe
21.05.2021 16:54:07
Nico
Moin,
macht es Sinn Wareneingang und Resteverwaltung in Tabellen zu formatieren? oder wird es alles zu groß dadurch?
Gruß Nico
AW: kleine Hilfe
22.05.2021 08:29:26
hary
Moin Nico
macht es Sinn Wareneingang und Resteverwaltung in Tabellen zu formatieren?
Meinst du damit umwandeln in intelligente Tabellen?
Dann arbeitest du mit Listobjecten. Machen kann man (fast) alles.
Lies mal ein wenig im Forumsarchiv oder andere Quellen ueber Listobjects.
Aber wie du siehst kann man schon mit verbundenen Zellen ins straucheln kommen. ;-)
gruss hary
AW: kleine Hilfe
22.05.2021 09:20:37
Nico
Morgen Hary,
Ja genau das meine. Da ist es mit dem Filtern natürlich einfacher.
Ich muss jetzt mir das Makro was du zur Hilfe bereitgestellt hast erstmal aufarbeiten.
Hatte gestern schon mal probiert. Hat auch geklappt aber nur der Bereich den ich ausgewählt habe. Hatte den Filter über eine Tabelle gesetzt. Das Problem hier ist es wird nur die Tabelle angesprochen.
Gruß Nico
AW: Steuerelemente
17.05.2021 16:25:33
Nico
Hallo Ralf,
das ist ja schon richtig super. So inetwa war mein Plan, aber leider habe ich nicht so die Kenntnisse in VBA. Wenn ich das jetzt richtig erkannt habe ist das eine Makro (z.B. Ausbuchen) zur Feststellung welcher Button geklickt wurde und das andere wird dann ausgeführt. So eine Lösung habe ich schon gegoogelt leider nicht gefunden.
Die Sache mit dem Button nur einen zu nehemen wäre toll, aber woher will man wissen auf welche Zeile er angewendet werden soll?
Eine Idee wäre noch, dass man Ausbuchen und Ticket nur in die Zelle schreibt und mit einem doppelklick das Makro auslöst.
Schön wäre es, wenn du mir die Zeilen in den Makros kommentierst, weil ich nicht weiß, was mit welcher Zeile und Befehl erreicht wird(ist es hier egeal in welcher Spalte/Zeile sich der Button befindet?/. Ich möchte es verstehen um es auch in anderen Fällen anwenden zu können und wenn ein Fehler auftritt ihn auch zu finden.
Aber vielen Dank für deine Mühe. Das ist schon echt super.
Gruß Nico
AW: Steuerelemente
18.05.2021 19:20:13
ralf_b
Hallo Nico,
benötigst du noch Erklärungen zu meinem Code oder bist du mit Harrys Lösung schon soweit zufrieden?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige