tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
871
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    maniblu 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
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  3. #3
    maniblu 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....
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  5. #5
    maniblu Tutorials.de Gastzugang
    Code 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....

    Code 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
    Und das wieder holt sich dann noch genau 60 mal
     

  6. #6
    maniblu Tutorials.de Gastzugang
    Und diese 2 wollte ich eben im Hauptprogramm wieder mit Call....auffrufen.

    Tut mir leid, dass habe ich übersehen.....
     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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ß Thomas
     
    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.

  9. #9
    maniblu 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ß.
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  11. #11
    maniblu Tutorials.de Gastzugang
    Ich dachte mit Call oder****

    glg manuel
     

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  13. #13
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  14. #14
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  15. #15
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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

  1. Prozedur zu groß?
    Von Daniel5 im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 12.02.09, 22:25
  2. Prozedur zu groß
    Von CrimeTime im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 30.12.06, 21:54
  3. Click Prozedur innerhalb einer anderen Prozedur aufrufen?!
    Von Blaubmania im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 21.09.06, 12:55
  4. Panel ist zu groß sollte nur so groß sein wie das Rechteck
    Von downset04 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 11.01.05, 10:23
  5. prozedur in prozedur
    Von DarkListener im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 02.05.02, 21:47