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

Zuweisung eines Primärschlüssels

Zuweisung eines Primärschlüssels
16.02.2015 12:07:04
Allan
Hallo zusammen
-------------------------------------------------------
Worksheet mit Abhängigkeit zu Userform1:
-------------------------------------------------------
Spalte A = Primärschlüssel-Werte als ganze Zahlen
Spalte B = Text
Spalte C = leeres Eingabefeld [soll mit Textbox1 befüllt werden]
Spalte D = leeres Eingabefeld [soll mit Textbox2 befüllt werden]
------------
Userform1:
------------
Textbox1 = Spalte C
Textbox2 = Spalte D
Textbox3 = Zuweisung zum Primärschlüssel d.h. muss = Primärschlüssel
------------
Frage:
------------
Die Werte in Spalte A sind absolut einzigartig. Wie schaffe ich es, dass ich nun
die gewünschte EinfüllZeile via TextBox3 bestimmen kann?
------------
Mein Ansatz:
------------
Dim Typ_CD As Variant
Dim i As Long
Set i = Range("A:A").Column
Set Typ_CD = Range(Cells(i, 1))
Besten Dank für eure Hilfe.
Freundliche Grüsse
Allan Bachmann

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zuweisung eines Primärschlüssels
16.02.2015 12:14:08
yummi
Hallo Allan,
schau dir mal die Hilfe zu find an.
Du weißt ja was in Textbox3 steht, den Wert übergibst du an find und bekommst dafür dann die zeile.
gruß
yummi

AW: Zuweisung eines Primärschlüssels
16.02.2015 14:02:39
Allan
Hi yummi,
Kannst du mir bezüglich Code helfen? Ich verstehe nicht ganz wie der genaue Ablauf ist bzw. Wann/Wo/Wie ich die Find-Funktion nutzen muss. Mein Ansatz siehst du unten:
TextBox3.Value = Typ_CD
Dim Typ_CD As Variant
Set Typ_CD = Columns(1, 0).Find(MatchCase:=True)
Cells(Typ_CD, 3) = TextBox1.Text
Cells(Typ_CD, 4) = TextBox2.Text
Cells(Typ_CD, 5) = TextBox3.Text
Cells(Typ_CD, 6) = TextBox4.Text
Freundliche Grüsse
Allan

Anzeige
AW: Zuweisung eines Primärschlüssels
16.02.2015 14:20:43
yummi
Hallo Alan,
du willst in Textbox 3 einen Wert eingeben und dann soll die passende Zeile zu dem Wert gesucht werden. Ist das so richtig?

dim Typ_CD as string
dim rng as range
dim zeile as long
Typ_CD = TextBox3.Text
Set rng = Sheets("DeinSheetname").Columns(1, 0).Find(Typ_CD)
if not rng is nothing then
zeile = rng.row
Set rng = nothing
else
MsgBox ("Kein Eintrag gefunden")
end if
if zeile  0 then
'dein code was du dann machen willst
end if
Gruß
yummi

AW: Zuweisung eines Primärschlüssels
16.02.2015 15:00:37
Allan
Hi yummi
Ja, genau das suche ich. Besten Dank für deinen Code. Allerdings krieg ich einen Run-time-error "1004" bei folgender cmd-Zeile: Set rng = Sheets("Worksheet-Name").Columns(1, 0).Find(Typ_CD)
Hier mal mein ganzer Code:
Private Sub CommandButton1_Click()
'Hauptbuch-Einträge aller Honorarverteilungen
Dim erow As Long
Worksheets("Main Database").Select
erow = Worksheets("Main Database").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Cells(erow, 1) = TextBox3.Value
Cells(erow, 3) = TextBox1.Text
Cells(erow, 4) = TextBox2.Text
Cells(erow, 5) = Now()
'Hier beginnt die Verteilung auf die Mandatstypen
If ComboBox1.Value = "Vollmandate" Then
'Typ_CD ist der Primärschlüssel
Dim Typ_CD As String
Dim rng As Range
Dim zeile As Long
Typ_CD = TextBox3.Text
Set rng = Sheets("Vollmandate").Columns(1, 0).Find(Typ_CD)
If Not rng Is Nothing Then
zeile = rng.Row
Set rng = Nothing
Else
MsgBox ("Kein Eintrag gefunden!"), vbExclamation
End If
If zeile  0 Then
'dein code was du dann machen willst
Cells(Typ_CD, 3) = TextBox1.Text    'Gültigkeitsdatum
Cells(Typ_CD, 4) = TextBox2.Text    'Satz
Cells(Typ_CD, 6) = TextBox4.Value   'Soll
Cells(Typ_CD, 7) = TextBox5.Value   'Haben
End If
End If
'Eintragsfelder für neue Eingabe leeren
TextBox1.Text = ""
TextBox2.Text = ""
TextBox4.Value = ""
TextBox5.Value = ""
End Sub

Anzeige
AW: Zuweisung eines Primärschlüssels
16.02.2015 15:13:39
yummi
Hallo Alan,
heisst dein Worksheet den "Worksheet-Name" ?
sonst musst du das entsprechend anpassen ;-)
aber da ist eh noch ein Fehler seh ich gerade:
du brauchst das noch

dim strRange as string
strRange = "A1:A" & Sheets("DeinWorksheetNamedenduanpassenmusst").Cells(Sheets(" _
DeinWorksheetNamedenduanpassenmusst").Rows.Count, 1).End(xlUp).Row
Set rng = Sheets("DeinWorksheetNamedenduanpassenmusst").Range(strRange).Find(Typ_CD)
gruß
yummi

AW: Zuweisung eines Primärschlüssels
16.02.2015 19:32:41
Allan
Hi Yummi,
Sorry für den Unterbruch. Musste Arbeitsplatz wechseln. Bin wieder am Start.
Zum Thema:
Hab den Run-Time-Error wegradiert, es funktioniert jetzt teilweise. Mir ist ist allerdings auf gefallen, dass der Code nur für ein Worksheet funktioniert, oder ich habs falsch gecodet. Ich benötige eine Worksheet-Variable, welche es möglich macht den PRIMÄRSCHLÜSSEL-ABGLEICH auf mehrere Sheets anzuwenden (Feld- und Spaltenposition des PK bleiben unverändert).
Fragen:
Hierfür benötige ich doch eine Worksheet_Variable als String, oder?
Wie könnte ich das am besten bewerkstelligen?
Habs jetzt 2 Stunden lang versucht, aber bin kläglich gescheitert.
Freundliche Grüsse
Allan Bachmann

Anzeige
AW: Zuweisung eines Primärschlüssels
17.02.2015 09:46:34
yummi
Hallo Alan,
poste doch mal deien Datei, dass ist dann einfacher, dann pass ich dir das für beliebige Sheets an.
Gruß
yummi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige