Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Nur einen Eintrag im Bereich zulassen

Betrifft: Nur einen Eintrag im Bereich zulassen von: Lemmi
Geschrieben am: 03.08.2008 17:45:38

Hallo zusammen,

ich möchte in einer Zeile (4) Nur einen Eintrag zulassen!

Der Bereich soll von I4 bis AB 4 gehen

Wird ein Text oder eine Zahl eingetragen z. B. in J4 "Hallo" so wird diese wieder verschwinden wenn ein neuer Eintrag in K4 durchgeführt worden ist! (z. B Hi 123)
D.h. die vorhandenen Einträge werden immer bei einem Neueintrag gelöscht!

zur Info!
Die Auswahl möchte ich Vorzugsweise mit einem Drop- Down Menü durchführen, hierzu benötige ich aber keine Unterstützung!

Gruß

Lemmi

  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Daniel
Geschrieben am: 03.08.2008 18:01:45

Hallo
das geht nur mit einem Makro im Modul des Tabellenblatts
dazu könntest du dieses Makro verwenden, es ist zwar etwas aufwendiger, würde aber auch funktionieren, falls ein grösserer Zellbereich in die Zeile kopiert würde

Gruß, Daniel

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range, rng2 As Range
Dim Eingabe As String

Set rng2 = Range("I4:AB4")
Set rng1 = Intersect(Target, rng2)
If Not rng1 Is Nothing Then
    Application.EnableEvents = False
    Eingabe = rng1(1).Formula
    rng2.ClearContents
    rng1(1).Formula = Eingabe
    Application.EnableEvents = True
End If




  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Lemmi
Geschrieben am: 03.08.2008 18:16:24



Hallo Daniel!


Heute ist Sonntag und die Antwort hat nicht einmal eine "Kaffeepause" auf sich warten lassen!

Einfach Super!


Gruß

Lemmi


  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Lemmi
Geschrieben am: 03.08.2008 20:11:37

Hallo Daniel!

hab noch ne kleine Frage! Wie bringe ich die zwei Worksheet_Change zusammen!

... einen anderen Namen vergeben als Change (.. ist wenn ich das richtig sehe mit einer Funktion/ Prozedur verbunden) geht nicht!

Hmm..aber wie dann?


Private Sub Worksheet_Change(ByVal Target As Range)
   
 If Target.Count > 1 Then Exit Sub 'nicht bei Markierung mehrerer Zellen
 'If Application.CutCopyMode Then Exit Sub 'nicht beim Kopieren/Ausschneiden
   
 Application.EnableEvents = False
      'Veränderungen im Bereich G6:CZ1000 werden in derjewaligen Zeile 5 mit Datum  _
protokolliert
       If Not Intersect(Target, Range("G6:CZ1000")) Is Nothing Then
           'Cells(5, Target.Column) = Now   ' Ausgabe TT:MM:JJ und hh:mm:ss
           Cells(5, Target.Column) = Date   ' Ausgabe TT:MM:JJ
       End If
       Application.EnableEvents = True
 End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rng1 As Range, rng2 As Range
 Dim Eingabe As String
 
 Set rng2 = Range("G4:AB4")
 Set rng1 = Intersect(Target, rng2)
 If Not rng1 Is Nothing Then
     Application.EnableEvents = False
     Eingabe = rng1(1).Formula
     rng2.ClearContents
     rng1(1).Formula = Eingabe
     Application.EnableEvents = True
 End If



Gruß


Lammi



  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Daniel
Geschrieben am: 03.08.2008 20:46:36

HI

du kannst pro Sheet nur ein Worksheet_Change-Makro haben.

die beiden Makros müssen in einem zusammengefasst werden.

Gruß, Daniel


  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Lemmi
Geschrieben am: 03.08.2008 20:51:36

Hallo Daniel,

wie bringe ich diese zusammen?

Kenne ich da zuwenig aus!

Könntest Du mich unterstützen?

Gruß

Lemmi


  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Daniel
Geschrieben am: 03.08.2008 20:59:07

Hi
nja, du kopierst beide Codes untereinander und baust die Abbruch- und Ausfürbedingungen so um, daß sich beide Codes nicht in Quere kommen.
Insbesondere die IF..THEN EXIT SUB sollten durch richtig IF ... THEN...ELSE...END IF - Klammern ersetzt werden, weil ja der 2. Teil ja unabhängig vom ersten ausgeführt werden muss.
dann schaust du dir noch die Variablen ab, ob es da eventuell zu irgendwelchen Konfliken kommen kann und benennst u.U. noch die betreffenden Variablen um und fertig.

Gruß, Daniel


  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Ramses
Geschrieben am: 03.08.2008 21:38:30

Hallo

probier mal


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range, rng2 As Range
    Dim Eingabe As String
    Set rng2 = Range("G4:AB4")
    Set rng1 = Intersect(Target, rng2)
    If Not rng1 Is Nothing Then
        Application.EnableEvents = False
        Eingabe = rng1(1).Formula
        rng2.ClearContents
        rng1(1).Formula = Eingabe
        Application.EnableEvents = True
    End If
    If Target.Count > 1 Then Exit Sub 'nicht bei Markierung mehrerer Zellen
    Application.EnableEvents = False
    If Not Intersect(Target, Range("G6:CZ1000")) Is Nothing Then
        Cells(5, Target.Column) = Date ' Ausgabe TT:MM:JJ
    End If
    Application.EnableEvents = True
    End If
End Sub


Gruss Rainer


  

Betrifft: AW: Nur einen Eintrag im Bereich zulassen von: Lemmi
Geschrieben am: 03.08.2008 21:52:05

Hallo Ramses,

hat geklappt ! Super!


Ein End If war allerdings in der Fehlermeldung! hab's weggenommen und alles war prima!


Danke!


Gruß

Lemmi


 

Beiträge aus den Excel-Beispielen zum Thema "Nur einen Eintrag im Bereich zulassen"