Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1160to1164
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
Makro Daten übertrag funktioniert nicht
Chris
Hallo an alle Sonntagsfrühaufsteher,
ich habe ein Problem mit einem Makro zum Drucken und komme einfach nicht weiter.
Folgender Sachverhalt:
Ich habe eine Tabelle mit Daten für Überseecontainer. Kommt ein Container im Depot an oder wird abgeholt gibt es einen sogenannten "Inter Change". Für Ankunft "CheckIn" und für Abholung "CheckOut".
Bei jeder Bewegung wird der Beladezustand des Containers in der Tabelle geändert z.B. von "unterwegs" zu "Voll WE Depot" usw. Das ganze wird über zwei entsprechende Makros gesteuert. Beide Makros funktionieren auch bis auf einen Fall.
Kommt ein Container an, wird der Beladezustand von "unterwegs" auf "Voll WE Depot" gesetzt und das funktioniert auch. Irgendwann wird der Container dann abgeholt und der Beladezustand wird auf "abgeholt VOH" gesetzt. Auch das funtioniert. Kommt der Container dann allerdings wieder und ich setze den Container auf "leer im Depot", setzt das Makro den Beladezustand aber auf "Voll WE Depot" und hier bin ich langsam am Verzweifeln.
Ich hoffe ich hab den Sachverhalt verständlich rüber gebracht.
Vielen Dank schon einmal im Voraus.
Gruß
Der Chris
Hier der Makroabschnitt für Drucken:
Sub Drucken()
Dim ExY As Integer
With Sheets("Depotverwaltung")
ExY = .Cells(6, 4)
z = Cells(2, 1)
Cells(2, 1) = Empty
'laufende Nummer aus Depotverwaltung holen und um 1 erhöhen.
Cells(3, 9) = .Cells(7, 4) + 1
'Überprüfen des Jahres und Zurücksetzung der lfd Nummer bei Jahreswechsel
If ExY  Cells(3, 7).Value Then Cells(3, 9).Value = 1
'Übertrag der laufenden Nummer, sowie dem aktuellen Jahr in die Depotverwaltung
.Cells(7, 4) = Cells(3, 9)
.Cells(6, 4) = Cells(3, 7)
'Übertrag der noch nicht vorhandenen Daten
If .Cells(z, 5)  Empty Then
If Cells(2, 11) = "1" Then .Cells(z, 13) = "leer im Depot" Else .Cells(z, 13) = "voll WE  _
Depot"
Cells(2, 11) = Empty
Else:
.Cells(z, 1) = Cells(6, 4) 'Anlieferung
.Cells(z, 3) = Cells(6, 4) 'Verlad. Hafen
.Cells(z, 5) = Cells(8, 4) 'ContNr
.Cells(z, 6) = Cells(9, 4) 'ContTyp
.Cells(z, 8) = Cells(10, 4) 'Frachtführer
.Cells(z, 9) = Cells(11, 4) 'Reederei
'Ausdrucken des aktuellen Datenblattes
ActiveSheet.PrintOut
ActiveSheet.PrintOut
'Übertrag neuer Beladezustand
.Cells(z, 13).Value = Cells(12, 4)  'Beladezustand
End If
End With
'Depotverwaltung-Tabelle aktivieren
Worksheets("Depotverwaltung").Activate
End Sub

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 09:32:50
Hajo_Zi
Hallo Chris,
ich habe Dein Makro laufen lassen nachdem ich die Variable Z definiert habe und hinter Else Doppelpunkt entfernt habe und in A2 15 geschrieben habe. Aber bei mir wird überhaupt kein Text geschrieben. Das könnte aber damit zusammenhängen das mene Tabelle anders aussieht als Deine.

AW: Makro Daten übertrag funktioniert nicht
06.06.2010 09:43:17
Chris
Hallo Hajo,
danke für die Antwort aber ich kann damit nichts anfangen. Was meinst du mit Variable Z definiert?
Ich kann dir Tabelle auch gern schicken, dann wirds vielleicht einfacher!?
Gruß
Der chris
Anzeige
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 09:47:14
Hajo_Zi
Hallo Chris,
Du benutzt eine Variable Z und die ist nicht definiert.
Warum mir schicken, dann haben die anderen nichts davon. Das hochladen einer Datei in diesem Forum ist einfach.
Gruß Hajo
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 10:22:58
Chris
Hallo Hajo,
die Datei ist leider zu groß und ich bekomme sie auch nicht klein genug.
Warum soll die Variable Z definiert werden? In allen anderen Fällen (z.B. von "unterwegs" zu "Voll WE Depot") funktioniert es ja, das ist ja das kuriose.
Gruß
Chris
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 10:35:44
Hajo_Zi
Hallo Chris,
die meisten Profis schreiben in das Modul Option Explicit damit alle Varuiablen definiert werden müsen, nur Laien brauchen das nicht zu machen.
Gruß Hajo
Anzeige
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 10:43:37
Chris
Hallo Hajo,
ich bin dir wirklich dankbar das du mir helfen willst, aber ich kann mit deinen Antworten nicht viel anfangen.
Ich bin im Höchstfalle Leihe und weit weg vom Profi. Ich verstehe zwar wie Makros funktionieren, kann sie aber nicht schreiben. Das Makro hat jemand anderes geschrieben und die junge Dame ist nicht mehr im Unternehmen.
Ich wollte die Datei jetzt hochladen und habe sie dafür gezipt, allerdings macht mir das Programm als Endung immer "7z" dran und das kann im Forum nicht hochgeladen werden. Keine Ahnung wo diese Endung herkommt.
Gruß
Der Chris
AW: Makro Daten übertrag funktioniert nicht
06.06.2010 10:52:35
BoskoBiati
Hallo,
die Endung 7z liegt wohl daran, dass Du 7Zip benutzt und nicht richtig packst. Es gibt bei 7Zip die Möglichkeit, eine Dateials Zip zu packen. Das muß man aber explicit auswählen. Ansonsten solltest Du die Variable Z einfach mit dieser Zeile deklarieren (am Code-Anfang einfügen:
Dim Z  
Das ist zwar nicht as Non Plus Ultra, hilft aber.
Gruß
Bosko
Anzeige
Nachtrag
06.06.2010 10:54:38
BoskoBiati
Hallo,
das Druck-Makro ist wohl nicht das, was hier gebraucht wird.
Gruß
Bosko
AW: Nachtrag
06.06.2010 11:03:26
Chris
Hallo Bosko,
das Makro ist weitaus größer. Durch klick auf Drucken werden die weiteren Schritte ausgelöst.
Gruß
Chris
AW: Nachtrag
06.06.2010 11:14:55
Chris
Ich glaub ich gehe nach hause. Jetzt macht mir WinZip die Endung "wjf" hinten dran.
Entweder bin ich blind oder ...
Gruß
AW: Nachtrag
06.06.2010 11:20:37
Hajo_Zi
Hallo Chris,
ich sehe nicht wo das Problem ist. Ab Betriebsystem XP, geht man im Windows Explorer auf die Datei, rechte Maustaste und senden an Zip komprimierten Ordner.
Gruß Hajo
Anzeige
AW: Nachtrag
06.06.2010 11:25:51
Chris
hallo Hajo,
ich bin ... Muss woll ein Sontagskoller sein.
Habe es geschafft. Wäre dir/euch sehr Dankbar wenn ihr euch die Datei mal anschaut.
Dateiname: Depotverwaltung.xls
Danke und Gruß
AW: Nachtrag
06.06.2010 11:29:27
Hajo_Zi
Halllo Chris,
Du hätttest nur den Link der Dir beim hochladen am Ende angezeigt wird in den Beitrag kopieren sollen.
Gruß Hajo
AW: Nachtrag
06.06.2010 11:41:53
Hajo_Zi
Hallo Chris,
es können jetzt alle die Datei sehen. Aber wäre eine Anleitung nicht gut, was wir machen sollen und wo sich was ändert und durch welches Makro das erreicht wird?
Gruß Hajo
Anzeige
AW: Nachtrag
06.06.2010 12:00:17
Chris
Hallo Hajo,
macht Sinn.
Wie im ersten Beitrag schon ansatzweise beschrieben geht es um verschiedene Stati von Überseecontainern.
Der aktuelle Status eines Containers wird immer in Spalte "M" angegeben.
Es gibt den Status "unterwegs", dass heißt der Container ist vom Hafen unterwegs ins Depot.
In den Spalten A bis N sind dazu entsprechende Daten über die Container selbst wie Soll Ankunft, Reederei, Lieferant, Containernummer etc.
Sobald der Container ankommt gibt es ein sogenanntes "Inter Change" Dokument. Eins für den anliefernden Fahrer und eins für mich. Dabei wird die Containernummer kopiert, anschließend Doppelklick auf Übergabeschein IN, Fenster öffnet sich, Containernummer muss eingefügt werden und dann ok. Jetzt öffnet sich automatisch der Übergabeschein IN und es müssen noch einige Daten angegeben werden. Unteranderem muss man den "Beladezustand ändern von "unterwegs" zu "Voll WE Depot".
Mit Klick auf Drucken soll dann der neue Beladezustand automatisch in die Quelltabelle übernommen werden.
Im beschriebenen Fall funktioniert das auch.
Irgendwann wird der Container dann abgeholt zur Entladung. Dazu wird der Status von "Voll WE Depot" mittels dem zweiten Schein Abholung in den Status "abgeholt VOH" geändert.
Auch das funktioniert.
Nach Entladung kommt der Container wieder zurück und es wird ein neuer Übergabe Schein in ausgestellt. Der Beladezustand wird dann im Dokument "Übergabeschein IN" von "abgeholt VOH" zu "leer im Depot" geändert und durch Klick auf Drucken soll dieser neue Status automatisch in die Quelltabelle übernommen werden.
Hier wird allerdings immer der Status "Voll WE Depot" übernommen.
Und hier bin ich am verzweifeln warum es nicht geht.
Gruß
Der Chris
Anzeige
AW: Nachtrag
06.06.2010 12:20:52
BoskoBiati
Hallo,
mir scheint, hier ist einiger Bedarf an Änderungen.
Es werden teilweise Zahlen als Text abgefragt.
Es gibt eine leere Sub Nichts(), die immer wieder aufgerufen wird, die völlig unnütz ist.
Die Deklarierung von Variablen ist teilweise nicht korrekt.
Es scheint, als sei die Schaltfläche "Übergabe in" nicht mit einem Code belegt, also nutzlos.
Es ist allerdings schwierig das Ganze nachzuvollziehen, wenn man die Regelabläufe nicht kennt.
Gruß
Bosko
AW: Nachtrag
06.06.2010 12:26:52
Chris
Hallo Bosko,
wenn man nicht in der Materie steckt ist die Tabelle schwierig.
Die Schlatfläche Übergabe IN ist schon belegt und funktioniert auch nur in dem beschriebenen Fall nicht.
Wenn es für dich ok ist können wir gern dazu tel. Dann kann ich verbal vielleicht besser erklären.
Gruß
Der Chris
Anzeige
AW: Nachtrag
06.06.2010 13:34:22
BoskoBiati
Hallo,
ändere mal folgende Zeilen:
'Übertrag der noch nicht vorhandenen Daten
If .Cells(z, 5)  "" Then
.Cells(z, 13) = Cells(12, 4)
Cells(2, 11) = ""
Else
Die Sub Initial() würde ich dahinändern:
Sub Initial()
'strg+N
Dim ContNr As String
'Eingabefeld öffnen
ContNr = UCase(InputBox("Bitte Containernummer eingeben! ", "Eingabe Containernummer"))
With Sheets("Uebergabeschein_IN")
.Cells(8, 4) = ContNr
If .Cells(8, 4) = Empty Then
MsgBox ("Kein Eintrag möglich! Bitte Containernummer angeben!")
Else
Initial2 'wenn nichts eingetragen: Fehlermeldung!
End If
End With
End Sub

Dann müssen die Buchstaben nicht als Großbuchstaben eingegeben werden.
Ich würde auch nicht mit =empty arbeiten, aber das ist Geschmacksache.
Die ganzen CALL kann man auch weglassen.
Der Übersicht wegen würde ich aus den If-Then-Else Konstrukten auch Mehrzeiler wie in meinem obigen Beispiel machen.Verlangt zwar ein END IF am Ende, ist aber leichter lesbar.
Gruß
Edgar
Anzeige
AW: Nachtrag
06.06.2010 14:01:42
Chris
Hallo Edgar,
es funktioniert.
Vielen Dank für die Hilfe und vorallem Geduld mit mir.
Natürlich auch an Hajo vielen Dank.
Sicher könnt ihr mir noch bei einem anderen Anliegen helfen.
Beim Drucken des Übergabe IN Schein werden ja grundsätzlich zwei Scheine gedruckt, einer für den Fahrer und einer für meine Ablage.
Ein Großteil der Container kommt aber Zug und hier benötige ich nur einen Schein.
In Spalte B steht dazu entweder eine Zeit (das heißt der Container kommt per LKW). Wenn Zug steht kommt der Container per Zug und ich benötige nur einen Schein.
Könnt Ihr mir sagen wie ich das Marko gestalten muß um zu sagen "Wenn in Spalte B = Zug dann druck nur einmal sonst zwei mal".
Gruß
Der Chris
Anzeige
AW: Nachtrag
06.06.2010 14:54:47
BoskoBiati
Hallo,
im Modul CheckIn:
'Ausdrucken des aktuellen Datenblattes
ActiveSheet.PrintOut
If .Cells(z, 2) "Zug" Then ActiveSheet.PrintOut
Gruß
Edgar
AW: Nachtrag
06.06.2010 15:23:17
Chris
Hallo Edgar,
auch das funtioniert jetzt.
Nochmals Vielen Dank und dir noch einen schönen Sonntag.
Grüße
Der Chris

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige