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

Ich brauche eure Hilfe VBA Werte werden nicht über

Ich brauche eure Hilfe VBA Werte werden nicht über
31.07.2017 15:36:53
Hollandt
Hallo Leute,
ich versuche mir gerade eine Lieferscheinerstellung zu automatisieren. Dabei möchte ich in einem Tabellenblatt "Übersicht" ein x an jede Position setzten, die ich dann auf dem LS haben will. Das Makro soll auf dem Tabellenblatt die Spalte L durchgehen und jedes Mal, wenn ein x gefunden wird, soll es die Daten aus den Spalten links daneben aufnehmen und in die Tabelle Lieferschein übertragen. Das ist die Kurzform. Drum herum wird dann noch die Adresse vom Ansprechpartner heraus gesucht und später soll die Datei als Excel abgespeichert und versendet werden. Das funktioniert soweit auch. Aber mein Problem ist, dass in dem Abschnitt, in dem die Daten in die dazugehörigen leeren Zellen auf dem Lieferschein eingetragen werden sollen, er mir nur die Artikelnummer und den Artikel einträgt. DIE FANR, Menge und Einheit werden nicht mit eingetragen. Könnt ihr mir da bitte behilflich sein? ps. Im oberen Teil mit dem CSTR habe ich eingefügt, weil ich jedes Mal Fehlermeldungen bezüglich der Variablen bekommen habe. Wahrscheinlich hat er die Stringzahlen in Integerwerte umgewandelt, weshalb ich auch das .value weg gelassen habe.
Sub LieferscheinErstellen()
Dim Ansprechpartner, Strasse, PLZ, Ort, Belegdatum As String
Dim Seite As Integer
Dim LSNR, Artikelnummer, Artikel, Einheit, Auswahl, FANR, Menge, Bestellnummer As String
Dim i, n, lfdnr As Integer
Sheets("Übersicht").Activate
' LSNR generieren ------------------------------------------------------------------------------------------'
Dim s As Integer
For s = 3 To Range("M3").End(xlDown).Row
Cells(s, 13).Select
If Selection.Offset(1, 0).Value = "" Then
lfdnr = Selection.Value
Exit For
End If
Next s
lfdnr = lfdnr + 1
LSNR = "LS" & "-" & Year(Date) & "-BSD-" & lfdnr
' LS erstellen ---------------------------------------------------------------------------------------------'
Dim zelle As Range
Dim bereich As Range
Set bereich = Range("L3:L500")
For Each zelle In bereich
If zelle.Value = "x" Then
zelle.Offset(0, 1).Value = lfdnr
zelle.Offset(0, -6).Value = LSNR
Artikelnummer = CStr(zelle.Offset(0, -7).Value)
Artikel = zelle.Offset(0, -8).Value
FANR = CStr(zelle.Offset(0, -3))
Menge = CStr(zelle.Offset(0, -1))
Einheit = "Stück"
Seite = "1"
Belegdatum = Date
Bestellnummer = zelle.Offset(0, -9)
Projekt = zelle.Offset(0, -11).Value
Ansprechpartner = zelle.Offset(0, -10).Value
' Adressdaten ermitteln ----------------------------------------------------------------------------------'
Sheets("Adressen").Activate
For n = 2 To Range("A2").End(xlDown).Row
Cells(n, 2).Select
If ActiveCell.Value = Ansprechpartner Then
Firma = ActiveCell.Offset(0, 1).Value
Strasse = ActiveCell.Offset(0, 2).Value
PLZ = ActiveCell.Offset(0, 3).Value
Ort = ActiveCell.Offset(0, 4).Value
End If
Next n
' Daten in Lieferschein oben eintragen --------------------------------------------------------------------'
Sheets("Lieferschein").Activate
Cells(11, 9).Value = Seite
Cells(13, 9).Value = Belegdatum
Cells(15, 9).Value = LSNR
Cells(17, 9).Value = Bestellnummer
Cells(2, 1).Value = Ansprechpartner
Cells(3, 1).Value = Firma
Cells(4, 1).Value = Strasse
Cells(5, 1).Value = PLZ & " " & Ort
Cells(9, 12).Value = Projekt
Cells(9, 12).Font.Name = "Arial"
Cells(9, 12).Font.Size = 14
Cells(9, 12).Font.Bold = True
'Leere Position auf Lieferschein finden ------------------------------------------------------------------------'
Dim m As Integer
Range("D21").Select
For m = 1 To 10
If ActiveCell.Value = "" Then
ActiveCell.Value = Artikelnummer
ActiveCell.Offset(0, 1).Value = Artikel
ActiveCell.Offset(0, 2).Value = FANR
ActiveCell.Offset(0, 3).Value = Menge
ActiveCell.Offset(0, 4).Value = Einheit
Exit For
End If
ActiveCell.Offset(1, 0).Select
Next m
End If
Sheets("Übersicht").Activate
Next zelle

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Werte werden nicht übernommen
31.07.2017 16:11:37
mmat
Hallo,
ähm, das müsste eigentlich funktionieren.
FANR = zelle.Offset(0, -3)
Menge = zelle.Offset(0, -1)
Auch dieses ist vollkommen korrekt. ein cstr durmrum ist m.e. nicht nötig. Und wenn du ".value" weglässt, dann isses exakt .value, weil das ist Default.
Welche Fehlermeldungen kommen da bei dir?
vg, MM
schau Dir mal an wie Du Deklarierst ...
31.07.2017 19:01:58
Matthias
Hallo
Sub LieferscheinErstellen()
 Dim Ansprechpartner, Strasse, PLZ, Ort, Belegdatum As String
Dim Seite As Integer
Dim LSNR, Artikelnummer, Artikel, Einheit, Auswahl, FANR, Menge, Bestellnummer As String
Dim i, n, lfdnr As Integer
Debug.Print "Ansprechpartner:" & TypeName(Ansprechpartner)
Debug.Print "Starsse:" & TypeName(Strasse)
Debug.Print "PLZ:" & TypeName(PLZ)
Debug.Print "Ort:" & TypeName(Ort)
Debug.Print "Belegdatum:" & TypeName(Belegdatum)
Debug.Print "LSNR:" & TypeName(LSNR)
Debug.Print "Artikelnummer:" & TypeName(Artikelnummer)
Debug.Print "Artikel:" & TypeName(Artikel)
Debug.Print "Einheit:" & TypeName(Einheit)
Debug.Print "Auswahl:" & TypeName(Auswahl)
Debug.Print "FANR:" & TypeName(FANR)
Debug.Print "Menge:" & TypeName(Menge)
Debug.Print "Bestellnummer:" & TypeName(Bestellnummer)
Debug.Print "i:" & TypeName(i)
Debug.Print "n:" & TypeName(n)
Debug.Print "lfddnr:" & TypeName(lfdnr)
End Sub

Ergebnis:
Ansprechpartner:Empty
Starsse:Empty
PLZ:Empty
Ort:Empty
Belegdatum:String
LSNR:Empty
Artikelnummer:Empty
Artikel:Empty
Einheit:Empty
Auswahl:Empty
FANR:Empty
Menge:Empty
Bestellnummer:String
i:Empty
n:Empty
lfddnr:Integer
Gruß Matthias
Anzeige
AW: Ich brauche eure Hilfe VBA Werte werden nicht über
31.07.2017 20:09:58
Hollandt
Hallo Matthias
1:1 kannst du das nicht ausprobieren weil ich die restlichen Infos aus anderen Tabellenblättern nehme. Ich kriege keine Fehlermeldung. Das ist das Problem. Der füllt mir den Artikel und die Artikelnummer aber die restlichen 3 Dinge Menge Einheit und FANR füllt er nicht aus obwohl sie befüllt sind wenn ich Ihnen den Wert ganz oben zuweise. Und ich weiß nicht warum. Hab's ohne die Stringzuweisung gemacht...mit und ohne Value etc.
MfG Markus
VBA Werte werden nicht übernommen
01.08.2017 13:22:22
mmat
Hallo
FANR = zelle.Offset(0, -3) ist korrekt, wenn da nix übertragen wird, dann bedeutet dies (im einfachsten Fall), dass in zelle.Offset(0, -3) nix drin steht.
Tritt der Fehler schon in der ersten Zeile auf?
Mach mal unter die Zuweisung eine Zeile:
msgbox FANR
erscheint der erwartete wert?
Bist du das din schon mal im Einzelschrittmodus durchgegangen?
vg, MM
Anzeige
AW: VBA Werte werden nicht übernommen
01.08.2017 15:20:04
Hollandt
Hallo Matthias,
ich habe das alles ausprobiert, auch in den Einzelschritten. Bis in die If Schleife, wo er erst prüft, welche Zelle frei ist und dann die 5 Werte eintragen soll, werden die Werte übergeben. Am Anfang hat er die Zahlen als Integer genommen und dann wurde mir gesagt, ich solle sie als String umwandeln, da es sonst Probleme geben kann. Jetzt werden die Werte als String übergeben aber eben nicht in die letzten 3 Spalten eingefügt. Der führt den Schritt zwar aus, aber übergibt eben die Werte nicht.
MFG Markus
AW: VBA Werte werden nicht übernommen
01.08.2017 16:39:11
mmat
Sorry, aber eben wird meine Kristallkugel pechschwarz.
Ohne in die Datei reingucken zu können sehe ich keinen Ansatzpunkt für eine Hilfestellung mehr.
vg, MM
Anzeige
genau so ist es ... war bei mir auch schwarz. owT
01.08.2017 16:57:20
Matthias
AW: genau so ist es ... war bei mir auch schwarz. owT
02.08.2017 09:30:16
Hollandt
Hallo Matthias,
hast du eine Email für mich an die ich es senden kann? Möchte die Datei nicht öffentlich rein stellen Wegen den Dingen, die drin stehen.
MFG Markus
Sorry, Nein ... keine Mail-Adresse ...
02.08.2017 18:58:21
Matthias
Hallo Markus
Sorry, aber Nein. Keine Mailadresse.
Probleme sollten im Forum gelöst werden
Du kannst ja sensible Daten durch "Dummy-Daten" ersetzen.
Gruß Matthias
AW: Sorry, Nein ... keine Mail-Adresse ...
03.08.2017 10:09:15
Hollandt
Hallo Matthias,
ich habe die Datei geleert und könnte sie jetzt hochladen. Das Problem ist aber, ich kriege eine Meldung, dass die Datei vom Server nicht genommen werden kann, obwohl es eine .xlsm ist. Was machen wir da?
MFG Markus
Anzeige
Datei zu groß/Ordner zu tief/Leerzeichen im Namen?
03.08.2017 17:36:34
Matthias
Hallo
Zitat:
ich habe die Datei geleert und könnte sie jetzt hochladen.
Evtl ist die Datei zu groß, Limit = 300 kb
und sie darf nicht zu tief in Ordnerstrukturen liegen.
Am Besten legst Du auf C:\ einen Ordner an, verschiebst die Datei dorthin und versuchst
den Upload nocheinmal. Es dürfen auch keine Leerzeichen im Dateinamen sein!
Lies Dir die Bedingungen für den Upload nochmal durch.
Gruß Matthias
AW: Datei zu groß/Ordner zu tief/Leerzeichen im Namen?
04.08.2017 08:02:28
Hollandt
Jetzt hat es geklappt. Wäre super wenn du es dir noch einmal anschauen könntest.
https://www.herber.de/bbs/user/115216.xlsm
Anzeige
schau ich mir am WE an ... Gruß Matthias owT
04.08.2017 18:43:38
Matthias
Offset ist falsch, wg. der Verbundzellen ...
06.08.2017 07:02:49
Matthias
Hallo
Das Problem: Falsche Offset-Adresse
Der Grund: Die Verbundzellen

Dim m As Integer
Range("D21").Select
For m = 1 To 10
If ActiveCell.Value = "" Then
ActiveCell.Value = Artikelnummer
ActiveCell.Offset(0, 1).Value = Artikel
ActiveCell.Offset(0, 11).Value = FANR    'Spalte("R")
ActiveCell.Offset(0, 15).Value = Menge   'Spalte("V")
ActiveCell.Offset(0, 19).Value = Einheit 'Spalte("Z")
Exit For
End If
ActiveCell.Offset(1, 0).Select
Next m
Gruß Matthias
Anzeige
AW: Offset ist falsch, wg. der Verbundzellen ...
07.08.2017 08:39:05
Hollandt
Hallo Matthias,
vielen Dank.
MFG Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige