Anzeige
Archiv - Navigation
1388to1392
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

MsgBox ausgeben

MsgBox ausgeben
28.10.2014 08:18:18
Larissa

Hallo Zusammen,
Irgendetwas mache ich falsch...
Hier mein Code
If (Eingabe.Range("B7") = Sheets("Datentabelle").Cells(i, 5)) Then
MsgBox "This sample number already exist!"
Exit Sub
Ich möchte, dass wenn eine Zahl (Seriennummer) schon mal in der Tabelle vorhanden ist, diese Warnung ausgegeben wird.
Ich habe es geschafft, dass dann keine neue Zeile angelegt wird, nur die Messagebox streikt...
Vielen Dank =)

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

Betreff
Datum
Anwender
Anzeige
AW: MsgBox ausgeben
28.10.2014 08:30:47
MCO
Guten Morgen!
An der msgbox liegt es nicht.
Das kannst du im direktbereich testen (STRG+G im VBA-Editor)
Vielleicht hilft es ja, etwas mehr als nur einen kleinen Schnipsel reinzustellen?
Ist deine Bedingung wirklich in Ordnung?
Gruß, MCO

Das ist doch nur der halbe Code
28.10.2014 08:35:13
Matthias L
Hallo
In Deinem Bsp. fehlt das End If
Die Variable i ist nicht deklariert
Eingabe schein eine Objektvariable zu sein oder ist der Codename der Tabelle.
Bei mir klappts
Option Explicit
Sub Larissa()
Dim i&
i = 5
If (Eingabe.Range("B7") = Sheets("Datentabelle").Cells(i, 5)) Then
MsgBox "This sample number already exist!"
Exit Sub
Else
MsgBox "Eintrag fehlt noch"
End If
End Sub
wobei ich Eingabe als CodeName der Tabelle benutze und die Variable i gefüllt habe.
Steht in beiden Zellen der gleiche Wert wird korrekt zurückgegen
Sind unterschiedliche Werte vorhanden greift der Else-Zweig
Gruß Matthias

Anzeige
AW: Das ist doch nur der halbe Code
28.10.2014 08:38:45
hary
Moin
Pruef doch ohne Schleife mit CountIf.
Heiss dein VBACodename "Eingabe" ??
If Application.CountIf(Worksheets("Datentabelle").Columns(5), Eingabe.Range("B7")) Then
MsgBox "This sample number already exist!"
Exit Sub
End If

guss hary

AW: Sry, sollte zu Larissa gruss owT
28.10.2014 08:40:25
hary
.

AW: Sry, sollte zu Larissa gruss owT
28.10.2014 08:52:07
Larissa
Ich kapier immer noch nicht ganz wo ich hier gerade antworte oder schreibe :D
Aber auf jeden Fall funktioniert es jetzt!
DAnke an alle.
Die Schleife von Hary hat funktioniert!

AW: Sry, sollte zu Larissa gruss owT
28.10.2014 08:55:04
Larissa
Danke =) , das hat funktioniert!!
Grüße Larissa

AW:Versuch mal so
28.10.2014 09:04:56
hary
Moin
Teste mal diesen Code.
Private Sub CommandButton1_Click() 'Übernehmen
Dim erste_freie_zeile As Integer
Dim i As Integer
Dim Eingabe As Worksheet
With Sheets("Datentabelle")
erste_freie_zeile = .Range("B65536").End(xlUp).Offset(1, 0).Row
Set Eingabe = ThisWorkbook.Worksheets("Eingabe")
If Application.CountIf(.Columns(5), Eingabe.Range("B7")) Then
MsgBox "This sample number already exist!"
Exit Sub
Else
'Sample information
.Cells(erste_freie_zeile, 1) = Eingabe.Range("B2")
.Cells(erste_freie_zeile, 2) = Eingabe.Range("B4")
.Cells(erste_freie_zeile, 3) = Eingabe.Range("B5")
.Cells(erste_freie_zeile, 4) = Eingabe.Range("B6")
.Cells(erste_freie_zeile, 5) = Eingabe.Range("B7")
'Notes
.Cells(erste_freie_zeile, 6) = Eingabe.Range("A11")
End If
End With
Set Eingabe = Nothing
End Sub

der Elsezweig kann noch vereinfacht werden.
gruss hary

Anzeige
AW: MsgBox ausgeben
28.10.2014 08:40:04
Larissa
Danke für die schnelle Antwort.
Hm dann muss wohl woanders der Fehler liegen.
Hier mal der gesamte Code...
Private Sub CommandButton1_Click() 'Übernehmen
Dim erste_freie_zeile As Integer
erste_freie_zeile = Sheets("Datentabelle").Range("B65536").End(xlUp).Offset(1, 0).Row
Set Eingabe = ThisWorkbook.Worksheets("Eingabe")
Dim letzte_volle_zeile As Integer
Dim i As Integer
letzte_volle_zeile = Sheets("Datentabelle").Range("E65536").End(xlUp).Offset(1, 0).Row - 1
For i = 1 To letzte_volle_zeile
If (Eingabe.Range("B7") = Sheets("Datentabelle").Cells(i, 5)) Then
erste_freie_zeile = i
End If
Next
If (Eingabe.Range("B7") = Sheets("Datentabelle").Cells(i, 5)) Then
MsgBox "This sample number already exist!", vbOKOnly, "Information"
Exit Sub
End If
'Sample information
Sheets("Datentabelle").Cells(erste_freie_zeile, 1) = Eingabe.Range("B2")
Sheets("Datentabelle").Cells(erste_freie_zeile, 2) = Eingabe.Range("B4")
Sheets("Datentabelle").Cells(erste_freie_zeile, 3) = Eingabe.Range("B5")
Sheets("Datentabelle").Cells(erste_freie_zeile, 4) = Eingabe.Range("B6")
Sheets("Datentabelle").Cells(erste_freie_zeile, 5) = Eingabe.Range("B7")
'Notes
Sheets("Datentabelle").Cells(erste_freie_zeile, 6) = Eingabe.Range("A11")
End Sub
Also die Funktion klappt... Es übertragt die Zellen von einer Datei in die andere und auch nur wenn die sample number nicht schon vorhanden ist. Nur die MsgBox wird nicht angezeigt, sondern eben nur nicht übertragen.
Danke =)
Grüße Larissa

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige