Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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 Werte zuordnen

VBA Werte zuordnen
09.12.2014 09:11:17
Hans
Halli und Hallo!
Ich schreibe mir gerade eine Wiegeprogram mit Excel und stehe vor einem kleinem Problem für das ich eure Hilfe brauche:
Ich möchte dass ich bei jedem Wiegevorgang das Gewicht des LKWs in eine Tabelle eingetragen wird, sodass ich einen Überblick über die Lagerbestände habe.
Ich habe einen Button eingerichtet der den Wert einer Zelle "E15" (das Gewicht) in eine Tabelle schreibt.
Soweit kein Problem:
Private Sub CommandButton2_Click()
Range("E15").Copy
Worksheets("Lager").Range("C3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End Sub
allerdings muss er ja beim nächste Wiegevorgang nicht mehr in "C3" schreiben sondern in C4 usw usf. Also immer in die nächste freie Zeile. Wenn ich die Tabelle reinige soll er natürlich wieder soweit "oben" wie möglich anfangen.
Außerdem steht in der Zelle Template!B13 um welche Art von Ware es sich handelt (kann man per Dropdown auswählen). Hier muss erst geprüft werden um was es sich, sodass er unter umständen nicht bei Lager!C3 sondern bei Lager!D3 anfängt die Lagertabelle zu füllen.
Ich hoffe ich konnte mein Problem halbwegs anschaulich darstellen und freue mich auf konstruktive Antworten!
Beste Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Werte zuordnen
09.12.2014 09:54:49
Simon
Guten Morgen
für dein Grundproblem könntest du (glaube ich) das Programm nehmen:

Sub kopieren()
Dim ws As Worksheet
Dim varlauf As Long
Dim speicher As String
Set ws = Worksheets("Lager")
speicher = Cells(15, 5)
With ws
For varlauf = 1 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
If .Cells(varlauf, 3)  "" Then
.Cells(varlauf, 3) = speicher
End If
Next varlauf
End With
End Sub
aber ich verstehe nicht ganz was du mit dem zweiten Teil
Außerdem steht in der Zelle Template!B13 um welche Art von Ware es sich handelt (kann man per Dropdown auswählen). Hier muss erst geprüft werden um was es sich, sodass er unter umständen nicht bei Lager!C3 sondern bei Lager!D3 anfängt die Lagertabelle zu füllen.
meinst
Mit freundlichen Grüßen
Simon

Anzeige
AW: VBA Werte zuordnen
09.12.2014 10:06:24
Hans
Hey Simon!
Vielen Dank für die schnelle Hilfe. Ich werde es sofort ausprobieren.
Kurz zu deiner Frage: ich möchte das er zunächst den Wert der Zelle Template!B13 prüft und dann abhängig von dem Ergebnis in dem Lager Worksheet in die korrekte Spalte schreibt. Ich überlege gerade das mit Makros zu machen:
=WENN(Template!$B$13="WareA";Makro1_start();)
=WENN(Template!$B$13="WareB";Makro2_start();)
=WENN(Template!$B$13="WareC";Makro3_start();)
Makro1 würde dann in "Lager" Spalte C kopieren, Makro2 in Spalte D usw usf

AW: VBA Werte zuordnen
09.12.2014 10:15:37
hary
Moin
Du brauchst nicht fuer jede Ware ein Makro.
Wir muessten deinen Tabellenaufbau kennen.
Wenn du aus dem Blatt "Template" rausziehst und im Blatt "Lager" in Zeile 3 sind die Ueberschriften.
Dann so.
Sub rueber()
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim letzte As Long
Dim a As Variant
Set wksQ = Worksheets("Template")
Set wksZ = Worksheets("Lager")
a = Application.Match(wksQ.Range("B13"), wksZ.Rows(3), 0)
If IsNumeric(a) Then
letzte = wksZ.Cells(Rows.Count, a).End(xlUp).Row + 1
wksQ.Range("E15").Copy
wksZ.Cells(letzte, a).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End If
End Sub

gruss hary

Anzeige
AW: VBA Werte zuordnen
09.12.2014 10:24:49
Hans
Hey Hary!
danke auch dir. Ich versuche nochmal etwas besser zu erklären:
In der Zelle Template!E15 steht das Gewicht des LKWs.
In der Zelle Template!B13 kann ich per Dropdown die Ware auswählen (es gibt nur 3 verschiedene).
Wenn Template!B13 = WareA soll er in "Lager" Spalte C das Gewicht aus Template!E15 schreiben.
Wenn Template!B13 = WareB soll er in "Later" Spalte D das Gewicht aus Template!E15 schreiben usw.
Innerhalb der Lagerspalten muss er aber immer noch prüfen welche die letzte freie Zeile in der jeweiligen Spalte ist, sodass er jedem "Buttonklick" nach unten die Gewichte der LKWs fortschreibt

Anzeige
AW: VBA Werte zuordnen
09.12.2014 10:30:35
hary
Moin
Ja macht der Code:
Sub rueber()
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim letzte As Long
Dim a As Variant
Set wksQ = Worksheets("Template")
Set wksZ = Worksheets("Lager")
a = Application.Match(wksQ.Range("B13"), wksZ.Rows(3), 0)  '-- sucht in Zeile 3 die  _
passende Ware
If IsNumeric(a) Then '---wenn gefunden ist das die Spalte
letzte = wksZ.Cells(Rows.Count, a).End(xlUp).Row + 1 '--- gibt die naechste freie in  _
Spalte
wksQ.Range("E15").Copy
wksZ.Cells(letzte, a).PasteSpecial Paste:=xlPasteValuesAndNumberFormats'--kopiert  _
dahin
End If
End Sub

gruss hary

Anzeige
AW: VBA Werte zuordnen
09.12.2014 10:43:19
Hans
Jo funktioniert einwandfrei.
Wahnsinn, vielen Dank!
Echt der Hit was ihr drauf habt.
Problem solved ;)

AW: VBA Werte zuordnen
10.12.2014 15:50:47
Hans
Und holla ich habe dann noch eine weitergehende Frage:
Ich möchte, dass in der Zeile neben dem im "Lager" eingefügten Wert das dazugehörige Datun inkl. Uhrzeit erscheint. Ist das möglich?
Unabhängig davon versuche ich gerade einen Code zu schreiben, der eine bestimmte Zelle jeden Tag wieder auf "1" setzt... Wie kann ich das lösen?
Beste Grüße im Voraus
Hans

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige