Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1692to1696
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

VBA Hilfe beim eintragen

VBA Hilfe beim eintragen
14.05.2019 05:42:05
Silke
Guten morgen zusammen,
in der Spalte A stehen Kundennummern ab zeile3
und in Spalte H das Datum auch ab Zeile 3
ich möchte jetzt gerne, über eine Schaltfläche, dass ich in der Spalte K meine Bestellnummer eingebe,
Es soll eine Abfrage kommen, wenn Zeile K nichts drin steht, dann MUSS eine Bestellnummer eingegeben werden.
Die List schaut so aus.
SpalteA.....SpalteH......SpalteK
2074........11.05.2019....
2074........11.05.2019....
2074........11.05.2019....
11178......03.05.2019....kj156
12855......08.05.2019....1278hf
12855......08.05.2019....4555ggg
87888......01.05.2019.....
2074........02.05.2019....
Jetzt muss die Abfrage kommen ( Kunden und Lieferdatum ):
"bitte geben sie eine Bestellnummer beim Kunden :
2074 Datum 11.05.2019 ein: "
jetzt gebe ich ein "sa222" und dies wird danach in der gleichen Zeile vom Kunden/Datum in der Spalte K eingetragen.
Jetzt kommt die nächste Abfrage:
"bitte geben sie eine Bestellnummer beim Kunden :
2074 Datum 02.05.2019 ein "
Eingabe: jp547
Jetzt kommt die nächste Abfrage:
"bitte geben sie eine Bestellnummer beim Kunden :
8788 Datum 01.05.2019 ein "
Eingabe: dj458
Anschließend muss die Liste dann so aussehen:
Die List schaut so aus.
SpalteA.....SpalteH......SpalteK
2074........11.05.2019....sa222
2074........11.05.2019....sa222
2074........11.05.2019....sa222
2074........02.05.2019....jp547
11178......03.05.2019....kj156
12855......08.05.2019....1278hf
12855......08.05.2019....4555ggg
87888......01.05.2019....dj458
Sollte alles eingetragen sein soll die Abfrage kommen ( Spalte K ) "Alle Bestellnummer wurden eingetragen " )
Kann mir jemand Helfen wie sowas funktioniert?
Danke euch :-)
Silke

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Hilfe beim eintragen
14.05.2019 06:55:27
Armin
Hallo Silke,
Bitte lade eine Beispieldatei hoch. Hier hat keiner Lust für jede Anfrage ein Beipiel zu basteln das Du ohne viel Mühe schon hast.
Gruß Armin
Armin
14.05.2019 11:00:25
Silke
Hallo Armin,
leider darf ich von der Arbeit aus nichts hochladen. Werde heute abend diese Datei laden.
Danke
Armin
14.05.2019 11:09:59
Silke
Hallo Armin,
leider darf ich von der Arbeit aus nichts hochladen. Werde heute abend diese Datei laden.
Danke
AW: VBA Hilfe beim eintragen
14.05.2019 07:29:00
Matthias
Hallo
Sub Silke() Dim BestellNr$, rng As Range For Each rng In Range("A2:A9") 'Ende bitte Anpassen oder Einlesen If rng.Offset(, 10) = "" Then BestellNr = Application.InputBox("bitte geben sie eine Bestellnummer beim Kunden: " & _ rng.Text & vbLf & "für den " & rng.Offset(, 7) & " ein: ", , , vbInformation) If BestellNr = vbNullString Then MsgBox "Ungültige Eingabe", vbCritical: Exit Sub rng.Offset(, 10) = BestellNr If MsgBox("weiter", vbYesNo) vbYes Then Exit Sub End If Next End Sub
In Zeile(1) steht die Überschrift!
Tabelle1

 ABCDEFGHIJK
1SpalteA      SpalteH  SpalteK
22074      11.05.2019  sa222
32074      11.05.2019  sa222
42074      11.05.2019  ds333
511178      03.05.2019  kj156
612855      08.05.2019  1278hf
712855      08.05.2019  4555ggg
887888      01.05.2019  ew456
92074      02.05.2019  dd321


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Deshalb startet die Schleife in A2
Gruß Matthias
Anzeige
AW: VBA Hilfe beim eintragen
14.05.2019 10:57:12
Silke
Hallo Matthias,
er muss die komplett eingeben.
das heißt ist Kunde 2074 und das Datum gleich dann muss er alle mit dem Belegnummer füllen.
nicht jede Zeile extra, da es mindestens 1500 Zeilen sind
Danke Dir
AW: VBA Hilfe beim eintragen
14.05.2019 07:58:58
MCO
Guten Morgen, Silke!
Auch wenn ich Armin´s berechtigten Einwand damit torpediere, hier mein Vorschlag.
Im Prinzip ähnlich, wie der von Matthias, aber mit weniger if´s :-)
Sub Abfrage()
Dim rws As Long
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim bearb_rng As Range
Dim cl As Range
Dim Wert As Variant
rws = ActiveSheet.UsedRange.Rows.Count
Set rng1 = Range("A3:A" & rws).SpecialCells(xlCellTypeConstants)
Set rng2 = Range("H3:H" & rws).SpecialCells(xlCellTypeConstants)
Set rng3 = Range("K3:K" & rws).SpecialCells(xlCellTypeBlanks)
Set bearb_rng = Application.Intersect(rng1.Offset(0, 10), rng2.Offset(0, 3), rng3)
For Each cl In bearb_rng
Range("A" & cl.Row & ":K" & cl.Row).Select
Wert = Application.InputBox("bitte geben sie eine Bestellnummer beim" & Chr(10) & Chr( _
10) & Chr(9) & _
"Kunden " & Chr(9) & _
Cells(cl.Row, "A") & Chr(10) & Chr(9) & _
"Datum " & Chr(9) & _
Cells(cl.Row, "H") & Chr(10) & Chr(10) & "ein", " _
Dateneingabe")
If Wert = False Then Exit Sub
Next
End Sub
Gruß, Marc
Anzeige
AW: VBA Hilfe beim eintragen
14.05.2019 10:59:33
Silke
Hallo Marc, Danke auch für deine Hilfe,
aber er muß bitte alles Füllen wenn Kunde und Datum gleich sind. Es sind nämlich 1500 Zeilen und dann wäre es schneller und einfacher.
Außerdem wird bei deinem Code nichts eingetragen in Spalte K
Dankeschön
AW: VBA Hilfe beim eintragen
14.05.2019 13:46:04
Rudi
Hallo,
Sub silke()
Dim objRows As Object, oObj, i As Integer
Dim lRow As Long
Dim strKey As String, vntBN
Dim wks As Worksheet
Dim tmp
Application.ScreenUpdating = False
Set wks = Sheets("Bestellungen")  'anpassen
Set objRows = CreateObject("scripting.dictionary")
With wks
'Zeilen mit leerer K sammeln
For lRow = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lRow, 11) = "" Then
strKey = .Cells(lRow, 1) & "_" & .Cells(lRow, 8)
objRows(strKey) = objRows(strKey) & "_" & lRow
End If
Next
End With
If objRows.Count Then
For Each oObj In objRows
vntBN = Empty
tmp = Split(oObj, "_")
Do
'Auftragsnummer eingeben
vntBN = Application.InputBox("Bitte Auftragsnummer für Kunde " _
& tmp(0) & " am " & tmp(1) & " eingeben.", "Auftragsnummer")
'OK und Eingabe "" oder Abbrechen geklickt
Loop Until VarType(vntBN) = vbString And Len(vntBN) Or VarType(vntBN) = vbBoolean
If VarType(vntBN) = vbString Then
tmp = Split(objRows(oObj), "_")
For i = 1 To UBound(tmp)
wks.Cells(tmp(i) * 1, 11) = vntBN
Next i
End If
Next
Else
MsgBox "Alle Nummern vorhanden"
End If
End Sub

Gruß
Rudi
Anzeige
AW: VBA Hilfe beim eintragen
15.05.2019 05:21:40
Silke
Hallo Rudi,
P e r f e k t :-)
Wenn ich aber eine Zahl eingebe ( Input ) mit einer 0 am Anfang soll auch eine 0 im Excleblatt stehen.
Wie kann man das machen ?
Dankeschön
Formatiere die Zielspalte vorher als TEXT ;-) owT
15.05.2019 07:31:42
Matthias
einfach ' voranstellen
15.05.2019 11:55:22
Rudi
Hallo,
          For i = 1 To UBound(tmp)
wks.Cells(tmp(i) * 1, 11) = "'" & vntBN
Next i

Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige