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

Makro Bereich definieren

Makro Bereich definieren
22.11.2021 12:28:35
Denis
Guten tag an alle,
ich komme nicht weiter. Ich versuche schon seid Tagen, dass das eine Makro nur in einen Spaltenbereich eingetragen werden kann und das andere in einem anderen.
Das ist mein Beispiel bisher von dem Versuch den Bereich festzulegen und auch nur dann die Zeit einzutragen.:
Set bereich = Tabelle1.Range("D4:D34")
'If bereich.Value = "" Then
If Tabelle1.Range("D4:D34").Value = "" Then
zeit = Right(Now(), 8)
Else
MsgBox ("Falsche Zeile")
End If
Über eine Hilfe wäre ich sehr dankbar und würde mich auch schon jetzt einmal bedanken.

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Bereich definieren
22.11.2021 13:11:37
ChrisL
Hi
Ich verstehe ehrlich gesagt nur Bahnhof. Aber was mir auffällt, wenn du einen ganzen Bereich überprüfen willst, ob irgendwo im Bereich eine Eingabe erfolgt ist, dann mit COUNTA/ANZAHL2=0 (oder umgekehrt als ISTLEER=31).
Ein Detail. Die Zeit würde ich als Datentyp Date handhaben.

Sub t()
Dim zeit As Date
If WorksheetFunction.CountA(Tabelle1.Range("D4:D34")) = 0 Then
zeit = Now()
MsgBox Format(zeit, "HH:MM:SS")
Else
MsgBox ("Falsche Zeile")
End If
End Sub
cu
Chris
AW: Makro Bereich definieren
22.11.2021 13:39:39
Denis
Hallo Chris,
tut mir leid, dass ich wirklich schlecht im erklären bin :(.
Ich versuche nur mit dem Makro A in dem Bereich D4-D34 etwas einzutragen. Dort soll nur das Makro A reinschreiben können. Makro B nur im Bereich E4-E34.
Jeden Tag sollen sich "Kollegen" mit dem Makro A "anmelden" und mit dem Makro B "abmelden.". Es ist auch mehrmals gesichert und eigentlich auch schon sehr "sicher" aber ein Wunsch ist es, dass Makro A nur mit Kommen betitelt ist und auch nur in die Kommen Spalte eintragen kann.
Ich hoffe das ist ein wenig ersichtlicher :).
Anzeige
AW: Makro Bereich definieren
22.11.2021 13:45:33
ChrisL
Hi Denis
So ganz blicke ich noch nicht durch.
Wenn Makro A so formuliert ist, dass es nach D4-D34 schreibt, dann schreibt es nicht plötzlich irgendwo anders hin. Bei Bedarf kann man das VBA-Projekt schützen, so dass niemand am Code hantiert.
Wenn du eine manuelle Eingabe verhindern willst, dann schütze das Blatt.
cu
Chris
AW: Makro Bereich definieren
22.11.2021 14:11:37
Denis
Hallo
meine Frage ist aber wie schreibt man das Makro A so, dass es nur in dem Bereich schreibt? Denn bei mir kann ich mit dem Makro A auch in die anderen Zeile schreiben. :/
Vielen dank Chris für die Hilfe.
AW: Makro Bereich definieren
22.11.2021 14:20:37
ChrisL
Hi Denis
Das von dir gezeigte Makro schreibt gar nichts, weshalb ich nicht verstehe, wieso es in andere Zellen schreiben soll.
Irgendwie reden wir aneinander vorbei....
cu
Chris
Anzeige
AW: Aufgabenbeschreibung
22.11.2021 15:13:26
GerdL
Moin Denis,
man könnte jetzt, da du die Rückfragen von Chris nicht konkret beantwortet hast, nach dem Prinzip "Versuch u. Irrtum" fortfahren.
Oder du beschreibst deine Zielsetzung komplett.
Du hast zwei Bereiche u. die restlichen Zellen deiner Tabelle.
Bei Betätigung von MakroA soll was genau passieren u. was ausgeschlossen sein?
Bei Betätigung von MakroB soll was genau passieren u. was ausgeschlossen sein?
AW: Makro Bereich definieren
22.11.2021 19:15:43
Yal
Hallo zusammen,
dann erkäre ich, was ich verstehe, dann kann Denis noch korrigieren.
Jeder Kollege/Kollegin muss jeden Tag (bis zu 31 Tage) einstempeln (Marko A) und ausstwmpeln (Makro B).
Das "Ein" wird im Bereich "D4:D34" eingetragen und das "Aus" ... wahrscheinlich in E4:E34.
Also: entweder ein Zeile ein Tag, dann muss man ermitteln welche Zeile, oder es kommt alles nacheinander, dann muss die erste leere Zeile ermittelt werden, sowohl beim Einstempeln als auch bei Ausstempeln.
@Denis: auf einem "Bereich" kann man nicht schreiben. Nur auf Zelle, also entweder auf jede oder eine Zelle dieses Bereiches. Es ist wichtig, um eine Vorhaben verständlicher zu beschreiben.
Da ich die Version 1-31 für wahrscheinlicher halte (und weil die andere Variante wackeliger ist), den Code dazu:

Sub Anmelden()
Dim Zeile As Integer
Zeile = Day(Now) + 3 '1->4, 31->34
If Tabelle1.Cells(Zeile, "D")  "" Then
MsgBox "Anmeldezeit für heute (Zelle D" & Zeile & ") ist bereit belegt.", vbExclamation
Else
Tabelle1.Cells(Zeile, "D") = Format(Now, "hh:mm:ss")
End If
End Sub
Sub Abmelden()
Dim Zeile As Integer
Zeile = Day(Now) + 3 '1->4, 31->34
If Tabelle1.Cells(Zeile, "E")  "" Then
MsgBox "Abmeldezeit für heute (Zelle E" & Zeile & ") ist bereit belegt.", vbExclamation
Else
Tabelle1.Cells(Zeile, "E") = Format(Now, "hh:mm:ss")
End If
End Sub
Ein etwa vollständigere Version wäre:

Sub Anmelden()
Zeit_eintragen "An"
End Sub
Sub Abmelden()
Zeit_eintragen "Ab"
End Sub
Private Sub Zeit_eintragen(AnAb As String)
Dim Zelle As Range
Dim Spalte As Integer
Select Case AnAb
Case "An": Spalte = 4 ' 4. Spalte ist D
Case "Ab": Spalte = 5 '5. Spalte ist E
End Select
Set Zelle = Tabelle1.Cells(Day(Now) + 3, Spalte)
If Zelle.Value  "" Then
If MsgBox(AnAb & "meldezeit für heute (Zelle " & Zelle.Address & ") ist bereit belegt." & vbCr & "Eintrag ersetzen?", vbYesNo + vbExclamation) = vbYes Then
Zelle.ClearContents
End If
End If
If Zelle.Value = "" Then Zelle = Format(Now, "hh:mm:ss")
End Sub
VG
Yal
Anzeige
AW: Makro Bereich definieren
23.11.2021 07:20:41
Denis
Guten Morgen alle zsm,
ich danke für die Antworten und hätte es auch genauer beschrieben mit der Aufgabenstellung. Tut mir leid Chris und Markus.
Die Antwort vom Yal ist genau das was ich brauche.
Vielen Herzlichen Dank :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige