tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
4139
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    so hallo @all:

    bei ein noch absoluter in VB und komme gerade einfach nicht weite. wahrschienlich gibts bessere und schneller lösungen (dafür wäre ich auch dankbar) aber das ist auf meinem bisherigen wissenstand entstanden:

    ich habe eine exceltabelle, in der ich in der spalte E das maximum suche. nun soll ab dieser zelle in der sich das maximum befindet (z.b: E30) die zeilennummer des ersten positive wert gefunden werden (z.b. 60) dieser wert (E60) soll ausgegeben werden und der wert in spalte A60 und D60.

    ich hab jetzt ein makro geschrieben und es kommt laufzeitfehler 1004. beim debuggen bin ich hier:
    Code :
    1
    
    If Range("E" & f).Value > Range("I26").Value Then
    hab im internet nachgelesen und dan stand bei excel 2000 solle man unter Extras -> Makros -> Sicherheit Reg.Karte Vertauenswürdige Quelle VB-Zeug vertrauen anklicken - das gibts bei mir net, nur ne box alle installierten ADD-Ins und Vorlagen vertrauen (hab ich gemacht, aber es tut immer noch net). wie gesagt bin noch ein anfänger, aber vielleciht könnt ihr mir ja weiterhelfen...

    danke schon mal im voraus
    gruß dani

    hier der code:
    Code :
    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
    
    Sub Makro3()
    Dim i, f As Integer
    Dim max
        
        Do While f < 2000
        If Range("E" & f).Value > Range("I26").Value Then
        Range("I26").Value = Range("E" & f).Value
        i = f
        End If
        f = f + 1
        Loop
                                                    'Schleife, die bis zu ersten positiven Wert zählt
        Do While Range("E" & i).Value < 0           'und dann die passenden Werte, wie Winkel, KraftG usw.
        i = i + 1                                   'liefert
        Loop
        
        Range("j9").Select                          'wähle Zelle J9 aus
        ActiveCell.Value = Range("E" & i).Value     'schreibe in Zelle J9 den Wert von Zelle Ei
                                                    '=KraftDNull
        
        Range("j10").Select                         'wähle Zelle J10 aus
        ActiveCell.Value = Range("A" & i).Value     'schreibe in Zelle J10 den Wert von Zelle Ai
                                                    '=iKraftDNull
            
        Range("j12").Select                         'wähle Zelle J12 aus
        ActiveCell.Value = Range("D" & i).Value     'schreibe in Zelle J10 den Wert von Zelle Di
                                                    '=KraftG(iKraftDNull)
    End Sub
     
    ...irgendwas ist immer

  2. #2
    Nirraven Nirraven ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Tecklenburg (NRW)
    Beiträge
    258
    Hi, also folgendes:

    Code :
    1
    
    If Range("E" & f).Value > Range("I26").Value Then

    Range schön und gut, aber du solltest ihm sagen, wo er diese Range findet. unter Global is se nämlich nicht.
    Code :
    1
    
    If Worksheets("Tabelle1").Range("E" & f).Value > ("Tabelle1").Range("I26").Value Then

    Soweit so gut, nur so wirst du auch ein laufzeitfehler erhalten. da im ersten Schleifendurchlauf f = 0 ist, und es die Range "E0" nunmal net gibt.

    also vorher f = 1 setzen.
     

  3. #3
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    also erstmal danke,

    f=1 ist gesetzt hab ich nachträglich eingefügt. aber der fehler kommt dann bei
    Code :
    1
    
    Do While Worksheets("Hub_01").Range("E" & i).Value < 0

    außerdem hat, bevor ich die erste schleife geschrieben hab, der rest auch ohne worksheets("tabelle1")... funktioniert. das Makro soll aber für 4 tabellen die in einem excel file drin sind dasselbe ausführen (reicht da eins mit verschieden worksheets("tabelleX")... oder brauch ich da 4 verschiedene makros?)

    lauf zeitfehler kommen aber trotzdem, und jetzt?

    jemand ne idee

    gruß dani
     
    ...irgendwas ist immer

  4. #4
    Nirraven Nirraven ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Tecklenburg (NRW)
    Beiträge
    258
    Ich hab nochmal gelesen, was genau du vor hast, und ich muss sagen, ich komm ins schleudern.

    ich habe eine exceltabelle, in der ich in der spalte E das maximum suche.
    Du suchst in Spalte E einen Maximalwert. (z.b: E30)

    nun soll ab dieser zelle in der sich das maximum befindet die zeilennummer des ersten positive wert gefunden werden
    Wenn in E30 der Max wert ist, ist die Spalte demzufolge 30

    dieser wert (E60) soll ausgegeben werden und der wert in spalte A60 und D60
    wieso nun doch E60 wenn du spalte E durchsuchst und E30 = Max ist?
    und A60 und D60 sind Zellen und keine Spalten.

    Ich bin verwirrt.


    Oder Suchst du in Spalte E den Max wert und möchtest aus der Zeile den ersten positiven wer? oder umgekehrt?
     

  5. #5
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    also, ich hab damit gemeint in Spalte E Zeile 60, denn es gibt ja keine Spalte E60, nur E oder EE oder 60 wenn man sie nummerieren lässt.

    das waren nur vereinfachungsbeispiele mit A60 bzw. D60 denn ich hab ca 65353 Werte in 4 Spalten um die Langrand' sche Interpolation zu berechnen.

    ausgehend von dem maximal wert der intepolation soll ab da der minimalwert(der ist negativ) gesucht werden, wenn man diesen gefunden hat, sucht man den Nulldurchgang der positiven Flanke (also von -x auf +y), diesen wert +y brauche ich für weitere berechnungen ebenso die dazugehörigen andere werte in den spalten A und D in der gleichen Zeile - so als kurzform.

    es funktioniert ja auch fast, aber nur fast. denn wenn das makro mehrmals ausgeführt wird kommt ein laufzeitfehler 1004, auch wenn nichts geändert wird! ebenso soll das makro aktiviert werden, wenn sich der wert der glättungsbreite ändert und dann in allen sheets.

    mir gehts aber erstmal um eine lauffähiges makro, in c++ hab ichs hinbekommen, nur da weiß ich net wie man das mit excel verknüpft - also bin ich zu VB übergegangen...

    irgendjemand ne idee?

    gruß dani
     
    ...irgendwas ist immer

  6. #6
    Nirraven Nirraven ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Tecklenburg (NRW)
    Beiträge
    258
    Ah, nu hab ich es glaub ich rekonstruieren können.
    Ich bin vom 1004
    Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen.

    du hast aber "Anwendungs- oder objektdefinierter Fehler", richtig?

    Ich schau mal, ob ich zu einer sinnvollen Lösung komme.
     

  7. #7
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    hat sich erledigt, hab eigentlich nix geändert, nur an ner minidummydatei ausprobiert und dann auf die echt datei übertragen - jetzt ****ts. aber du könntest mir sagen wie ich das makro einstellen muss, damit es sich selbst ausführt wenn sich ein wert ändert (kann auch ein bestimmter wert sein...)

    danke aber dass du dir zeitgenommen hast den thread zu lesen...


    gruß dani
     
    ...irgendwas ist immer

  8. #8
    Nirraven Nirraven ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    Tecklenburg (NRW)
    Beiträge
    258
    Du könntest es z.B. über
    Code :
    1
    2
    3
    4
    5
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("A1") Then
     <Anweisung>
    End If
    End Sub
    machen

    Das tritt aber nur ein, wenn du die Zelle (In diesem Fall A1) verlässt
     

  9. #9
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    ah, das ist gut und paast auch da ich in einer zelle ein wert eintrage und dieser sich dann durch das ganze file durchzieht und alles verändert. muss ich gleich mal ausprobieren. danke erstmal.

    gruß dani
    Geändert von Fizzelfritz (03.04.06 um 10:09 Uhr)
     
    ...irgendwas ist immer

  10. #10
    Avatar von Fizzelfritz
    Fizzelfritz Fizzelfritz ist offline Rookie
    Registriert seit
    Mar 2006
    Beiträge
    9
    funktioniert alles reibungslos. super! vielen dank für deine hilfe, hat mir einiges an zeit erspart. man sieht sich eventl. beim nächsten projekt

    gruß dani
     
    ...irgendwas ist immer

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 01.04.08, 16:12
  2. Brauche Hilfe, Visual Basic im Excel
    Von dreamli im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 28.04.06, 12:43
  3. Brauche Hilfe mit Excel Plugin
    Von RMI_17 im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 04.10.05, 15:02
  4. Brauche Hilfe bei einem Excel-Diagramm
    Von lp-chester im Forum Office-Anwendungen
    Antworten: 3
    Letzter Beitrag: 31.08.05, 22:18
  5. statistiken im excel, brauche hilfe
    Von chiefwiegam im Forum Office-Anwendungen
    Antworten: 10
    Letzter Beitrag: 15.03.04, 12:37