Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
660to664
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
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Feld auf Eintrag prüfen

Feld auf Eintrag prüfen
07.09.2005 15:13:06
Rudi
Hallo Experten,
der in der Folge stehende Code darf nur ausgeführt werden, wenn in den
Feldern: "MNAME" und "MAUF" ein Eintrag ist.
Wenn eines oder beide Felder leer ist oder sind, soll der Hinweis kommen:
"Namen oder Auftragsnummer fehlt!"
Nach dem Klick auf das "O.K." Button soll das Makro zum Feld: "MNAME" zurück kehren.
Kann man das realisieren?

Sub DifferenzJa()
Range("D17:F17").Select
ActiveCell.FormulaR1C1 = "=MEK-MVK"
Range("D17:F17").Select
ActiveCell.FormulaR1C1 = "=(MEK-MVK)/MWST/100-(MEK-MVK)"
Range("D17:F17").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D18:F18").Select
Application.CutCopyMode = False
Beep
End Sub

gruss rudiflei

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Feld auf Eintrag prüfen
07.09.2005 15:49:43
Christoph
Hallo Rudi,
ich geh mal davon aus, dass "MNAME" und "MAUF" einzelne Zellen mit den benannten Namen sind.
Dann so:
Gruß Christoph

Sub Test()
If Len(Trim(Range("MNAME"))) * Len(Trim(Range("MAUF"))) = 0 Then
MsgBox "Eintrag fehlt"
Range("MNAME").Select
Else: Call DifferenzJa
End If
End Sub

AW: Feld auf Eintrag prüfen
07.09.2005 17:27:01
Rudi
Klasse,
da bin ich ein Stück weiter.
Allerdings habe ich Deinen Code bestimmt falsch eingebaut.
Ich habe ihn übrigens für ein anderes Makro verwendet.
Wenn Du bitte noch mal nachsehen könntest.
Also das klappt soweit, bis auf die Gleinigkeit, dass wenn eines der beiden Felder leer ist, die Datei trotzdem gespeichert wird und wenn beide leer sind ein Laufzeitfehler kommt.
Es soll also nur gespeichert werden wenn beide Felder Einträge haben.
Mein Code sieht jetzt so aus:

Sub Save_Sheet() 'eine Tabell einer Mappe speichtern (automatischer Dateinamen und Ziellaufwerk)
If Len(Trim(Range("MNAME"))) * Len(Trim(Range("MAUF"))) = 0 Then
MsgBox "So nicht: Kundennamen und Auftragsnummer eingeben"
Range("MNAME").Select
Else: Call DifferenzJa
End If
Application.ScreenUpdating = False
Worksheets("Maske").Copy
If Right(Range("Path"), 1) = "\" Then 'Pfadanweisung für Ziellaufwerk steht in Feld "Path"
ActiveWorkbook.SaveAs Range("Path") & Range("DNAME") 'Dateinamen steht in Feld "DNAME"
Else
ActiveWorkbook.SaveAs Range("Path") & "\" & Range("DNAME")
ActiveWorkbook.Close
Application.ScreenUpdating = True
Beep
End If
End Sub

gruss rudiflei
Anzeige
AW: Feld auf Eintrag prüfen
08.09.2005 07:36:07
Christoph
Hallo Rudi,
meine letzte Version war so aufgebaut, dass du das Makro "Test" ausführst. Wenn hier die Prüfung erfolgreich ist, dann wird vom Makro "Test" das Makro "DeferenzJa" aufgerufen.
Da du jetzt die Prüfung in dein Makro integrierst, musst du die "If-Then-Else" -Bedingung ändern. (den Aufruf von "DeferenzJa" hab ich jetzt weggelassen)
Gruß
Christoph

Sub Save_Sheet()   'eine Tabell einer Mappe speichtern (automatischer Dateinamen und Ziellaufwerk)
If Len(Trim(Range("MNAME"))) * Len(Trim(Range("MAUF"))) = 0 Then
MsgBox "So nicht: Kundennamen und Auftragsnummer eingeben"
Range("MNAME").Select
Else
Application.ScreenUpdating = False
Worksheets("Maske").Copy
If Right(Range("Path"), 1) = "\" Then   'Pfadanweisung für Ziellaufwerk steht in Feld "Path"
ActiveWorkbook.SaveAs Range("Path") & Range("DNAME")   'Dateinamen steht in Feld "DNAME"
Else
ActiveWorkbook.SaveAs Range("Path") & "\" & Range("DNAME")
ActiveWorkbook.Close
Application.ScreenUpdating = True
Beep
End If
End If
End Sub

Anzeige
AW: Feld auf Eintrag prüfen
08.09.2005 11:53:27
Rudi
Danke Christoph, das funktioniert prima so!
gruss rudiflei
AW: Feld auf Eintrag prüfen
07.09.2005 16:00:10
IngGi
Hallo Rudi,
vorausgesetzt bei MNAME und MAUF handelt es sich um einzellige benannte Bereiche und deine Range-Bezüge haben bisher auch ohne Angabe von Arbeitsmappe und Arbeitsblatt geklappt, sollte es wie folgt funktionieren. Ich hab dein Makro auch auf's Notwendige gekürzt. Entscheidend ist aber, dass du das Ganze in die If-End If-Bedingung einkleidest. Um nach Ausführung zur Zelle MNAME zurückzukehren, schreibst du dann ganz einfach MNAME.Select.

Sub DifferenzJa()
If MNAME <> "" And MAUF <> "" Then
Range("D17").FormulaR1C1 = "=(MEK-MVK)/MWST/100-(MEK-MVK)"
With Range("D17:F17")
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
MNAME.Select
Application.CutCopyMode = False
Beep
End If
End Sub
Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige