ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
871
871
EMPFEHLEN
-
25.11.10 15:08 #1maniblu Tutorials.de Gastzugang
Hey Leute,
Ich habe ein großes Problem und bin aber leider totaler Anfänger und hoffe ihr könnt mir helfen.
Ich habe ein total großes Programm, welches über Excel verschiedene Teile von einen Link einliest, zusammen setzt und ihn wieder in einer Tabelle in unterschiedlichen Spalten ausgibt, diesen kann man über Excel ändern und dadurch gibt er zu einer bestimmten Zeit einen bestimmten Wert zurück.
Alles hat gepasst und auch funktioniert, bis auf die Tatsache, dass er schreibt "Prozedur zu groß".
Jetzt wollte ich es einfach in unterschiedliche Funktionen unterteilen, also
Einlesen 1 Funktion und Ausgabe 2 Funktion und das ganze wird in meiner Hauptprozedur aufgerufen. NUR funktioniert dass leider nicht da er mir die ganzen Werte die ich in die Funktionen kopiert habe nicht mehr ins Hauptprogramm zurück.
Also bei meiner Funktion Einlesen bleiben die eingelesen Teile in den Variablen, kann sie aber nur in eben in der Funktion verwenden und nicht in meinem Hauptprogramm....Hoffe ihr nkönnt das so halbwegs verstehen.....
Hoffe so sehr, dass ihr mir helfen könnt, bin schon total verzweifelt....
Vielen Dank, maniblu
-
könnten wir ev, wenn wir sehen würden wie du das mit den Funktion gelöst hast.
Poste nicht die ganzen Funktionen. Es reichen die folgenden Zeilen
- Kopfzeile der Funktion
- Setzen des Return-Value
- AUfruf der Funktion---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.11.10 15:43 #3maniblu Tutorials.de Gastzugang
Ich hab einfach geschrieben:
Public Sub einlesen()
Application.Goto reference:=Worksheets("Config").Range("B74") '
anfrage = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B75")
link = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B76")
archiv = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B77")
state = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B78")
zeichen = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B79")
zeichen2 = ActiveCell.FormulaLocal
.
.
.
.Und so geht das ganze noch 20 mal weiter....
Dann hab ich noch
Public Sub output()
If monat = "1" Then
If objekt <> "" And typ <> "" Then
For d = 1 To 31
datumneu = "1/" & d & "/2010"
For i = 11 To 12
Application.Goto reference:=Worksheets("Config").Range("A" & i)
zeit = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config").Range("B" & i)
zeit1 = ActiveCell.FormulaLocal
Application.Goto reference:=Worksheets("Config1").Range("B" & i)
ActiveCell.Formula = anfrage & link & objekt & archiv & typ & zeichen2 & zeichen & datumneu & zeit & zeichen2 & zeichen & datumneu & zeit1 & state
Next i
Application.Goto reference:=Worksheets("Config1").Range("C" & 12)
ActiveCell.Copy
Application.Goto reference:=Worksheets("Day").Range("B" & 11 + d)
ActiveCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next d
Else
For i = 11 To 34
Application.Goto reference:=Worksheets("Config1").Range("B" & i)
ActiveCell.Formula = ""
Next i
End If
End Sub Und das wieder holt sich dann noch genau 60 mal
Und das dachte ich ruf ich dann einfach mit Calloutput auf im Hauptprogramm....
-
Bitte den Code formatiert in [VB]mein Code[/VB] setzen.
So wie er jetzt da steht kann man das Ding kaum lesen---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.11.10 16:02 #5maniblu Tutorials.de GastzugangCode vb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Public Sub einlesen() Application.Goto reference:=Worksheets("Config").Range("B74") ' anfrage = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B75") link = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B76") archiv = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B77") state = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B78") zeichen = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B79") zeichen2 = ActiveCell.FormulaLocal
.Und so geht das ganze noch 20 mal weiter....
Und das wieder holt sich dann noch genau 60 malCode vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Public Sub output() If monat = "1" Then If objekt <> "" And typ <> "" Then For d = 1 To 31 datumneu = "1/" & d & "/2010" For i = 11 To 12 Application.Goto reference:=Worksheets("Config").Range("A" & i) zeit = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config").Range("B" & i) zeit1 = ActiveCell.FormulaLocal Application.Goto reference:=Worksheets("Config1").Range("B" & i) ActiveCell.Formula = anfrage & link & objekt & archiv & typ & zeichen2 & zeichen & datumneu & zeit & zeichen2 & zeichen & datumneu & zeit1 & state Next i Application.Goto reference:=Worksheets("Config1").Range("C" & 12) ActiveCell.Copy Application.Goto reference:=Worksheets("Day").Range("B" & 11 + d) ActiveCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Next d Else For i = 11 To 34 Application.Goto reference:=Worksheets("Config1").Range("B" & i) ActiveCell.Formula = "" Next i End If End Sub
-
25.11.10 16:04 #6maniblu Tutorials.de Gastzugang
Und diese 2 wollte ich eben im Hauptprogramm wieder mit Call....auffrufen.
Tut mir leid, dass habe ich übersehen.....
-
Sind diese Varibalen als global deklariert oder wie weiss das Programm was in monat, objekt etc. stehen soll?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.11.10 16:13 #8
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Also ich kann deinen Code noch nicht so ganz verstehen, vermute aber das man vieles davon kürzen bzw. zusammenfassen könnte.
Kannst du uns ein bisschen was darüber sagen was du machen willst.
Gruß ThomasSollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
26.11.10 07:34 #9maniblu Tutorials.de Gastzugang
Ja die Variablen sind global defeniert.
Das ist ja auch nur ein Teil von dem Programm, aber ich hätte es eben gerne so, wie ich es euch gezeigt habe, ausgelagert.
Also dass waren jetzt 2 Funktionen, wie ich es mir vorgestellt hätte, das Programm zu teilen damit nicht mehr diese Fehlermeldung kommt, Prozedur zu Groß.
-
Und wie rufst du output() auf?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
26.11.10 09:21 #11maniblu Tutorials.de Gastzugang
Ich dachte mit Call oder****
glg manuel
-
Call ist nur dann brauchbar wenn du keine Rückgaben hast.
Du schreibst, dass er dir Werte nicht in die Haubtfunktion zurückgibt.
Leider weiss ich immer noch nocht was für Werte. Norlamerweise funktioniert das so
Code vb:1 2 3 4 5 6 7
public function test(var1 AS String, var2 AS Long) AS String '//TODO: Mach irgendwass test = newValue end function 'Aufruf Value = Test("a", 13)
Nun, dzu arbeitest irgenwie undurchsichtig mit globalen Variabeln, keinen Rückgabewerten etc. Aber ich sehe immer noch nicht wie du das ebi dir funktionieren soll---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
26.11.10 09:29 #13
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ob es wohl beim Rückgabewert einen Unterschied ausmacht ob ich eine Funktion oder eine Prozedur habe?
Public Sub output()Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
sub hat kein Rückgabewert
function hat einen Rückgabewert (in PHP: Callback-Function)---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
26.11.10 10:19 #15
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Eben deshalb!
Es geht doch darum das kein Wert zurückgeliefert wird und maniblu schreibt selber immer von Funktionen.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Ähnliche Themen
-
Prozedur zu groß?
Von Daniel5 im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 12.02.09, 22:25 -
Prozedur zu groß
Von CrimeTime im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 30.12.06, 21:54 -
Click Prozedur innerhalb einer anderen Prozedur aufrufen?!
Von Blaubmania im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 21.09.06, 12:55 -
Panel ist zu groß sollte nur so groß sein wie das Rechteck
Von downset04 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 11.01.05, 10:23 -
prozedur in prozedur
Von DarkListener im Forum Delphi, Kylix, PascalAntworten: 2Letzter Beitrag: 02.05.02, 21:47





Zitieren


Login





