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

Zahlen in anderen Tabellen vergleichen

Zahlen in anderen Tabellen vergleichen
25.01.2009 21:39:13
Adi
Hallo ich könnte Hilfe gebrauchen,
in den 6 Tabellen werden in Spalte A A5:A36 willkürlich Zahlen eingetragen.
Es darf keine Zahl zweimal vorkommen. Ein Makro sollte dafür sorgen.
Gruß Adi
https://www.herber.de/bbs/user/58785.xls

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen in anderen Tabellen vergleichen
25.01.2009 21:56:39
Tino
Hallo,
versuche es mal mit diesem Code.
Kommt als Code in DieseArbeitsmappe
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim myTab As Worksheet
Dim Kontrolle As Boolean
Dim Wert As Variant

Kontrolle = False
Wert = Target.Value

With Application
 .EnableEvents = False
    
    For Each myTab In ThisWorkbook.Worksheets
     
     If myTab.Name <> Sh.Name And Left(Sh.Name, 3) = "Bel" Then
       
       If IsNumeric(.Match(Target.Value, Sh.Columns(1), 0)) Then
        Kontrolle = True
        Exit For
       End If
     
     End If
    
    Next myTab
 
    If Kontrolle Then
       Target.Value = ""
       MsgBox "Der Wert " & Wert & " ist schon vergeben"
    End If

    .EnableEvents = True
 
End With

End Sub


Gruß Tino

Anzeige
AW: Zahlen in anderen Tabellen vergleichen
26.01.2009 02:57:00
Ramses
Hallo Tino
Getestet hast du das aber nicht ;-) ?
If IsNumeric(.Match(Target.Value, Sh.Columns(1), 0)) Then
Du prüfst trotz "myTab" IMMER nur das Vorkommen im auslösenden Sh.Object, wo du den Wert eingetragen hast.
Ausserdem werden Doppeleingaben in der aktuellen Tabelle damit auch nicht verhindert.
Ich denke COUNTIF >= 1 wäre besser geeignet, dann kannst du auch die aktuelle Tabelle prüfen lassen
ob der Eintrag bereits vorhanden ist
Gruss Rainer
gut aufgepasst,...
26.01.2009 07:35:00
Tino
Hallo Rainer,
war wohl gestern doch zu späht, Danke.
Was habe ich den da für einen Quatsch gemacht?
Hier die Korrigierte Version.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim myTab As Worksheet
Dim Kontrolle As Boolean
Dim Wert As Variant
Dim iCounter As Integer
Kontrolle = False
Wert = Target.Value

With Application
 .EnableEvents = False
    
  With Application.WorksheetFunction
    For Each myTab In ThisWorkbook.Worksheets
     
     If Left(Sh.Name, 3) = "Bel" Then
       
       If .CountIf(myTab.Columns(1), Target) > 0 Then
        
        iCounter = iCounter + .CountIf(myTab.Columns(1), Target)
            If iCounter > 1 Then
             Kontrolle = True
             Exit For
            End If
       End If
     
     End If
    
    Next myTab
  End With
    
    If Kontrolle Then
       Target.Value = ""
       MsgBox "Der Wert " & Wert & " ist schon vergeben"
    End If

    .EnableEvents = True
 
End With

End Sub


Gruß Tino

Anzeige
AW: gut aufgepasst,...
26.01.2009 12:35:00
Adi
Hallo Timo,
Ich habe zwei Probleme
1. In „ DieseArbeitsmappe „ steht schon ein Makro
ein Zweites geht wohl nicht, oder? dieses Makro
habe ich zum Test gelöscht, brauche es aber dringend.
Timo, dass Makro welches du mir erstellt hast funktioniert
in der Testtabelle die ich hochgeladen hatte.
Wenn ich das Makro in der Original Tabelle einsetze,
klappt es nicht, sobald ich in Spalte A eine Zahl eingebe
kommt die Meldung Der Wert ist schon vergeben,
aber es steht keine Zahl dort.
Was kann man machen?
Gruß Adi
AW: gut aufgepasst,...
26.01.2009 13:51:14
Tino
Hallo,
zweites geht schon, man müsste nur schauen wie man diese vereinen kann.
Das kann ich aber so nicht beurteilen.
Am besten ist es eine Beispieldatei hochladen, die deinem Original entspricht.
Persönliche Daten kannst Du löschen, nur dass Problem muss bestehen bleiben.
Gruß Tino
Anzeige
AW: Zahlen in anderen Tabellen vergleichen
26.01.2009 11:49:00
Adi
Hallo Excelfreunde,
Danke an Timo und Ramses,
ich bin sehr beeindruckt wie schnell man hier mit den schwierigsten
Fragen geholfen wird. Meine letzte Anfrage ist perfekt gelößt
worden.
bis bald
Adi
AW: Noch eine Unklarheit.
26.01.2009 17:30:22
Adi
Hi Timo oder Ramses,
Ich hatte oben geschrieben, daß es doch nicht so läuft wie ich erst dachte.
In der Testtabelle steht in A1 kein Text , aber im Original steht in A1 ein Text,
"Garten-Nr "
Im Bereich A5:A36 werden Zahlen eingegeben, und zwar in jeder Tabelle.
Das nur noch mal als Hinweis.
Gruß Adi
AW: Noch eine Unklarheit.
26.01.2009 17:46:00
Tino
Hallo,
dann grenzen wir den Bereich einfach ein.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim myTab As Worksheet
Dim Kontrolle As Boolean
Dim Wert As Variant
Dim iCounter As Integer
Kontrolle = False
Wert = Target.Value

With Application
 .EnableEvents = False
    
  With Application.WorksheetFunction
    For Each myTab In ThisWorkbook.Worksheets
     
     If Left(Sh.Name, 3) = "Bel" Then
       
       If .CountIf(myTab.Range("A5:A36"), Target) > 0 Then
        
        iCounter = iCounter + .CountIf(myTab.Columns(1), Target)
            If iCounter > 1 Then
             Kontrolle = True
             Exit For
            End If
       End If
     
     End If
    
    Next myTab
  End With
    
    If Kontrolle Then
       Target.Value = ""
       MsgBox "Der Wert " & Wert & " ist schon vergeben"
    End If

    .EnableEvents = True
 
End With

End Sub


PS: ich heiße Tino, nicht Timo (so viel Zeit muss sein ;-))
Gruß Tino

Anzeige
AW: Noch eine Unklarheit.
26.01.2009 22:31:00
Tino
Hallo,
teste mal diese Version, habe dass Makro in ein Modul ausgelagert.
Habe die Datei in ein *.zip Archiv gepackt.
https://www.herber.de/bbs/user/58811.zip
Gruß Tino
AW: Alles O. K.
27.01.2009 11:23:09
Adi
Hallo Tino,
es funktioniert wunderbar, eine klitze Kleinigkeit
hätte ich da noch, wenn die Daten aus der Hebeliste geholt
werden, dann entsteht so ein geflimmer auf dem
Bildschirm. Gib mir einen Tip was ich machen soll.
Mit .ScreenUpdating = False oder True habe ich es versucht
ohne Erfolg.
Gruß Adi
Anzeige
AW: Alles O. K.
27.01.2009 13:47:42
Tino
Hallo,
Du musst darauf achten, dass Du ScreenUpdating nur einmal im gesamten Codeverlauf
aus bzw. wieder einschaltest.
Dies macht man in der Regel am Anfang und am Ende des Codes.
Was dann noch an Flackern übrig bleibt, mit dem musst Du leben.
Gruß Tino
AW: Alles O. K.
27.01.2009 16:10:00
Adi
Hallo Tino
Alles O. K.
Danke
Gruß Adi

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige