Anzeige
Archiv - Navigation
1536to1540
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

Prozedur von Tabellenblatt nach Modul umziehen.

Prozedur von Tabellenblatt nach Modul umziehen.
24.01.2017 20:43:29
Tabellenblatt
Hallo Leute,
ich bin mal so eben schnell nach einem Jahr Pause und nur einem Buch wieder in VBA für Excel eingestiegen, hab mal was hinprogrammiert was irgendwie funktionniert und stehe jetzt doch auf Schlauch.
Ich meinen gesamten Code die entsprechende Tabelle geschrieben und da funktioniert er auch ganz gut, möchte diesen aber jetzt in ein Modul umziehen und bekomme es mit Copy and Pace schon mal nicht hin.
Wisst ihr etwas generelles das beachtet werden muss. Als Beispiel hänge ich mal das meiste von meinem Code an. Hoffe ihr könnt mir einen Tipp geben.
Sub Worksheet_Change(ByVal Target As Range)
Dim kopien As String, slashposition As Integer
Dim zahlA As String, zahlB As String, laengeA As Integer, laengeKop As Integer
Dim zahl1 As Integer, zahl2 As Integer, auswahl As Integer
If Target.Address(0, 0) = "C9" Then
If Not Target Is Nothing Then
kopien = Target.Value
slashposition = InStr(kopien, "/")
If slashposition > 0 Then
zahlA = Left(kopien, slashposition - 1)
laengeA = Len(zahlA)
laengeKop = Len(kopien)
zahlB = Right(kopien, Len(kopien) - (Len(zahlA) + 1))
zahl1 = Val(zahlA)
zahl2 = Val(zahlB)
If zahl1 > 1 And zahl2 > 1 Then
auswahl = MsgBox("Soll eine Einzelkopie erstellt werden?", vbYesNo)
If auswahl = vbYes Then
einzelkopie
Else
Exit Sub
End If
Else
If zahl1 > zahl2 Then
anzahlKop = zahl1
Else
anzahlKop = zahl2
End If
frmEinzel_Mehrfach.Show
End If
Else
MsgBox "Bitte Kopienanzahl korrekt eintragen Zahl/Zahl"
End If
End If
End If
End Sub
Public Sub kopieren(anzahlKop)
Application.EnableEvents = False
Dim anzahl As Integer, mengeKop As Double
Dim zahlA As String, zahlB As String, inhalt As String
anzahl = anzahlKop
For mengeKop = 1 To anzahl
zahlA = CStr(mengeKop)
zahlB = CStr(anzahl)
inhalt = zahlA & "/" & zahlB
'MsgBox inhalt
ThisWorkbook.Worksheets(4).Range("c9").Value = inhalt
ActiveSheet.Range("a1:d11").PrintOut
Next mengeKop
Application.EnableEvents = True
End Sub
Public Sub einzelkopie()
ActiveSheet.Range("a1:d11").PrintOut
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozedur von Tabellenblatt nach Modul umziehen.
24.01.2017 21:37:31
Tabellenblatt
So müsste es (da du ja nichts im Blatt änderst) bei jedem Tabellenblatt problemlos klappen:
Das bleibt im Tabellenblatt:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "C9" Then call MySub(Target)
End Sub
Im MODUL:
Public Sub MySub(byval target as range)
Dim kopien As String, slashposition As Integer
Dim zahlA As String, zahlB As String, laengeA As Integer, laengeKop As Integer
Dim zahl1 As Integer, zahl2 As Integer, auswahl As Integer
If Not Target Is Nothing Then
kopien = Target.Value
slashposition = InStr(kopien, "/")
If slashposition > 0 Then
zahlA = Left(kopien, slashposition - 1)
laengeA = Len(zahlA)
laengeKop = Len(kopien)
zahlB = Right(kopien, Len(kopien) - (Len(zahlA) + 1))
zahl1 = Val(zahlA)
zahl2 = Val(zahlB)
If zahl1 > 1 And zahl2 > 1 Then
auswahl = MsgBox("Soll eine Einzelkopie erstellt werden?", vbYesNo)
If auswahl = vbYes Then
einzelkopie
Else
Exit Sub
End If
Else
If zahl1 > zahl2 Then
anzahlKop = zahl1
Else
anzahlKop = zahl2
End If
frmEinzel_Mehrfach.Show
End If
Else
MsgBox "Bitte Kopienanzahl korrekt eintragen Zahl/Zahl"
End If
End If
end if
End Sub

Anzeige
AW: Prozedur von Tabellenblatt nach Modul umziehen.
25.01.2017 16:16:17
Tabellenblatt
Hi onur,
noch nicht die Zeit gehabt es zu testen. Aber es sieht ziemlich gut aus. Macht ja auch Sinn vom dem wie es da steht.
Vielen Danke an dich.
mit vielen Grüssen,
Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige