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

Code in Module, Hilfe !

Code in Module, Hilfe !
21.02.2022 11:08:16
Flo
Guten Tag,
ich benötige dringend Hilfe, ich bin nicht erfahren in Programmierung und Excel. Ich habe mich so durchkämpfen können mit verchiedenen Hilfen und habe mir eine Datei erstellt.
Nun habe ich das Problem das ich immer den gleichen Code und die gleichen Buttons in 10 verschiedenen Tabellenblättern habe und das 10 mal anpassen muss.
Nicht clever ich weiß, aber war in dem Moment die einfachste Methode für mich.
Jetzt würde ich das gerne anpassen das ich die Buttons und den Code nur noch einmal verändern muss und die sich automatisch in allen Tabellenblättern anpassen.
Hier einmal die Datei:
https://www.herber.de/bbs/user/151260.zip
Wenn ihr mir helfen könntet, wäre ich euch sehr dankbar.
MfG
Flo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code in Module, Hilfe !
21.02.2022 11:09:38
Flo
Kurzer Nachtrag meinerseits :
Das Kennwort lautet überall KdoSAN.
MfG
Flo
AW: Code in Module, Hilfe !
21.02.2022 11:52:58
UweD
Hallo
Ich hab mir nicht alles angesehen...
In den einzelnen Blättern reicht das...

Private Sub CommandButton1_Click()
Call CB1
End Sub
Private Sub CommandButton2_Click()
Call CB2
End Sub
Private Sub CommandButton3_Click()
Call CB3
End Sub
Private Sub CommandButton4_Click()
Call CB4
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C5:AG128")) Is Nothing Then MsgBox "Fehler!", vbCritical
Cancel = True
If Not Intersect(ActiveCell, Range("C5:AG128")) Is Nothing Then
Cancel = True
CommandBars("MyCommandBar").ShowPopup
End If
End Sub
In ein Modul dann das hier

Option Explicit
Public Blatt As Worksheet
Public i As Long, Zeile As Long
Public Abteilung As String, Name As String
Public LfdNr As Integer
Public OldRow As Variant, Indx As Integer
Public OldRow1, RowCnt
Sub CB1()
On Error GoTo Fehler
If ActiveSheet.ProtectContents = False Then GoTo Fehler
ActiveSheet.Unprotect
ActiveSheet.CommandButton2.Visible = True
ActiveSheet.CommandButton3.Visible = True
ActiveSheet.CommandButton4.Visible = True
Sheets("Grundeinstellungen").Visible = True
Exit Sub
Fehler:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, Password:=("KdoSAN")
ActiveSheet.CommandButton2.Visible = False
ActiveSheet.CommandButton3.Visible = False
ActiveSheet.CommandButton4.Visible = False
Sheets("Grundeinstellungen").Visible = False
On Error GoTo 0
End Sub
Sub CB2()
Blaetterfreigeben
Zeile = Application.InputBox("welche Zeile loeschen?", "Zeile loeschen", Type:=1)
For i = ActiveSheet.Index To Worksheets.Count 'von aktuellem Blatt bis letztes Blatt
Worksheets(i).Rows(Zeile).Delete
Next
End Sub
Sub CB3()
Blaetterfreigeben
Zeile = Application.InputBox("Vor welcher Zeile einfuegen?", "Zeile einfuegen", 0, Type:=1)
If Zeile = 0 Then Exit Sub
Application.EnableEvents = False
Abteilung = Application.InputBox("Abtl.", "Abt. einfuegen", Type:=2)
Name = Application.InputBox("Name", "Name eintragen", Type:=2)
For i = ActiveSheet.Index To Worksheets.Count
With Worksheets(i)
.Rows(Zeile).Insert xlDown
.Cells(Zeile, 1) = Abteilung
.Cells(Zeile, 2) = Name
End With
Next
Application.EnableEvents = True
End Sub
Sub CB4()
On Error GoTo 0
Blaetterfreigeben
Indx = ActiveSheet.Index        'ActiveSheet Index merken
OldRow = Selection.Address(0)   'ausgewählte Zeilen Adresse (mit ":")
RowCnt = Selection.Rows.Count   'Anzahl Zeilen
Selection.Select
If InStr(OldRow, ":") = 0 Then MsgBox "Keine ganze Zeile ausgewählt" & vbLf & "Zeile zuerst bitte selektieren": Exit Sub
Zeile = Application.InputBox("in welche Zeile verschieben?", "Zeile  " & OldRow & "  verschieben", Type:=1)
If Zeile = Empty Then Exit Sub
On Error GoTo Fehler
Application.ScreenUpdating = False
Application.EnableEvents = False
'Zeilenkorrektur verursacht durch Cut!
OldRow1 = Left(OldRow, InStr(OldRow, ":") - 1)
If Zeile > OldRow1 Then Zeile = Zeile + RowCnt + 1
For i = ActiveSheet.Index To Worksheets.Count
With Worksheets(i)
.Select
.Rows(OldRow).Cut
.Rows(Zeile).Insert shift:=xlDown
End With
Next
Fehler:     'und Makro Ende
Worksheets(Indx).Select
Application.EnableEvents = True
If Err > 0 Then MsgBox "unerwarteter Fehler" & vbLf & Error()
End Sub
Sub Blaetterfreigeben()
For Each Blatt In ActiveWorkbook.Sheets
Blatt.Unprotect ("KdoSAN")
Next
End Sub
LG UweD
Anzeige
AW: Code in Module, Hilfe !
21.02.2022 12:45:46
Flo
Danke, das hat sehr gut funktioniert.
VG
Flo
Nicht so clever...
21.02.2022 11:10:25
{Boris}
Hi,
...das VBA-Projekt mit Passwort zu schützen, wenn Du Hilfe haben möchtest ;-)
VG, Boris
AW: Nicht so clever...
21.02.2022 11:13:57
Flo
Ja das stimmt :D
Ist eine Testdatei , spiele sehr viel damit rum, deswegen ist da schon noch so alles drin .
Passwort habe ich oben einmal genannt.
VG
Flo
AW: Code in Module, Hilfe !
21.02.2022 11:24:29
Herbert_Grom
Warum benutzt du eigentlich nicht die Datei, die ich dir schon im Oktober erstellt habe?
AW: Code in Module, Hilfe !
21.02.2022 12:19:07
Flo
Deine Version wurde von mir vorgeschlagen und besprochen während ich auf Lehrgang war und abgelehnt, da die Herren das Dokument sehr nah am altem Dokument angelehnt haben wollen.
VG
Flo
Anzeige
Viele Buttons - ein Makro
21.02.2022 11:27:57
{Boris}
Hi,
ich hab mir das jetzt nicht alles angeschaut, aber für einen Formularbutton hilft Dir das vielleicht weiter:

Sub wer_ruft_mich()
MsgBox "Ich heiße " & Application.Caller & vbLf & "Ich befinde mich hier: " & ActiveSheet.Buttons(Application.Caller).TopLeftCell.Address(external:=True)
End Sub
VG, Boris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige