Rechnungsvorlage
#11
Um nochmalige Hilfestellung wird ersucht - Danke!

Wenn im Register "Daten" und in der Spalte "N" unter der jeweiligen RNr. gedruckt stehen, dann sollte auch im Register "Betrag" in der Spalte "F" zu der
jeweiligen RNr. auch gedruckt stehen.

Ist das auch möglich?

Lg Ubi5


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 52,81 KB / Downloads: 3)
Antworten Top
#12
Hallo

kein Problem, habe den Code erweitert.  Bitte an die neue Spalte für Print in "Betrag" denken!

mfg Gast 123

Code:
Sub DruckeBereich()
Dim ReNr As Variant
ReNr = Sheets("Vorlage").Range("A10")

'Prüfung ob diese Rechnung existiert?
Set rfind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr)
If rfind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Daten'!", vbCritical: Exit Sub

'Prüfung ob diese Rechnung in Betrag existiert?
Set rfind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr)
If rfind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Betrag'!", vbCritical: Exit Sub

'Prüfung ob diese Rechnung schon gedruckt wurde?
If Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt" Then
   MsgBox "Diese Rechnung wurde bereits gedruckt!", vbInformation: Exit Sub
End If

'** Range auf Spalte F erweitern??
Range("A1:F47").PrintOut Copies:=1

'Druckvermerk in Daten notieren
Set rfind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr)
Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt"

'Druckvermerk in Betrag notieren
Set rfind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr)
Sheets("Betrag").Range("Tabelle1[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt"
End Sub



Sub DruckeBereich()
Dim ReNr As Variant
ReNr = Sheets("Vorlage").Range("A10")

'Prüfung ob diese Rechnung existiert?
Set rfind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr)
If rfind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Daten'!", vbCritical: Exit Sub

'Prüfung ob diese Rechnung in Betrag existiert?
Set rfind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr)
If rfind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Betrag'!", vbCritical: Exit Sub

'Prüfung ob diese Rechnung schon gedruckt wurde?
If Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt" Then
   MsgBox "Diese Rechnung wurde bereits gedruckt!", vbInformation: Exit Sub
End If

'** Range auf Spalte F erweitern??
Range("A1:F47").PrintOut Copies:=1

'Druckvermerk in Daten notieren
Set rfind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr)
Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt"

'Druckvermerk in Betrag notieren
Set rfind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr)
Sheets("Betrag").Range("Tabelle1[[Print]]").Cells(rfind.Row - 1, 1) = "gedruckt"
End Sub

Nachtrag   habe den Code geändert, -ohne- mir die Beispieldatei anzusehen.  Ich hoffe es klappt.
Antworten Top
#13
Info für Gast123!

Recht herzlichen Dank für die Bereitschaft der Hilfestellung.

Es hat sich ein kleiner Fehler eingeschlichen und zwar folgende Meldung:

Fehler beim Kompilieren
Mehrdeutiger Name: DruckeBereich

Lg Ubi5
Antworten Top
#14
(05.02.2025, 19:25)Ubi5 schrieb: Fehler beim Kompilieren
Mehrdeutiger Name: DruckeBereich

dann suche in deinem Code projektweit diesen Namen und identifiziere wo du die Sub ein zweites Mal definierst. Eine davon auskommentieren und das wars. Warum auskommentieren und nicht löschen? Weil man nie weis ob das was man löscht auch wirklich weg kann.
Antworten Top
#15
Was versteht man unter "auskommentieren" ?

Lg Ubi5
Antworten Top
#16
(05.02.2025, 20:11)Ubi5 schrieb: Was versteht man unter "auskommentieren" ?

Lg Ubi5

das darfst du mal selbst recherchieren. hier wird geholfen aber nicht zwingend nachgeholfen.
Antworten Top
#17
Hallo

ich habe mir deine 2. Beispieldatei angesehen, da sehe ich aber keine erkennbare Fehlerquelle.
Höfliche Frage, hast du den zweiten Code in ein neues Modul geladen, oder den 1.Code überschrieben??
Wenn der neue Code im Modul3 steht gibt es einen Namenskonflikt.  Zwei Makros mit gleichem Namen!

Bei Konflikten mit Namensgleichheit setze ich hinter dem alten Code ein "_old()", z.B. "Sub DruckeBereich_old"
Dann stört es Excel nicht mehr, und wenn es nicht klappt kann man den alten Code weiter benutzen.


mfg Gast 123
Antworten Top
#18
Info an Gast123!

Funktioniert alles perfekt!

Nochmals recht herzlichen Dank!

97 97 97 97 97
Antworten Top
#19
Die Info geht an Gast123!

Ich möchte bitte nicht lästig sein, mir ist aber aufgefallen, das im Register "Betrag" zwei Einträge mit der RNr. 1/2025 vermerkt sind, 
aber nur ein Datensatz mit gedruckt vermerkt wurde.

Ist eine Berichtigung überhaupt möglich - ansonsten belassen wir es so.

Nochmals Danke!

Lg Ubi5


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 53,7 KB / Downloads: 6)
Antworten Top
#20
Hallo

da kommt das Makro an seine technische Grenzen, weil normalerweise jede Rechnungs Nr. nur einmal vorkommt!
Da muss ich darum bitten das von Hand zu korrigieren.

Mir ist beim testen aber noch ein Fehler aufgefallen, denn wir unbedingt berichtigen müssen!
Der Suchlauf war nicht auf xlWhole eingestellt, weshalb die Find Suche falsche Ergebnisse bringen kann!
Das habe ich noch korrigiert.  Unten ist der geänderte Code.   (siehe LookAt:=xlWhole )

mfg Gast 123

Code:
Sub DruckeBereich()
Dim ReNr As Variant, rFind As Range
ReNr = Sheets("Vorlage").Range("A10")

'Prüfung ob diese Rechnung existiert?
Set rFind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr, LookAt:=xlWhole)
If rFind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Daten'!", vbCritical: Exit Sub

'Prüfung ob diese Rechnung schon gedruckt wurde?
If Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rFind.Row - 1, 1) = "gedruckt" Then
   MsgBox "Diese Rechnung wurde bereits gedruckt!", vbInformation: Exit Sub
End If

'Prüfung ob diese Rechnung in Betrag existiert?
Set rFind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr, LookAt:=xlWhole)
If rFind Is Nothing Then MsgBox "Diese Rechnung fehlt in 'Betrag'!", vbCritical: Exit Sub

'** Range auf Spalte F erweitern??
'Range("A1:F47").PrintOut Copies:=1

'Druckvermerk in Daten notieren
Set rFind = Sheets("Daten").Range("Tabelle2[[RNr.]]").Find(what:=ReNr, LookAt:=xlWhole)
Sheets("Daten").Range("Tabelle2[[Print]]").Cells(rFind.Row - 1, 1) = "gedruckt"

'Druckvermerk in Betrag notieren
Set rFind = Sheets("Betrag").Range("Tabelle1[[RNr.]]").Find(what:=ReNr, LookAt:=xlWhole)
Sheets("Betrag").Range("Tabelle1[[Print]]").Cells(rFind.Row - 1, 1) = "gedruckt"
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste