ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
4139
4139
EMPFEHLEN
-
30.03.06 10:45 #1
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:
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...Code :1
If Range("E" & f).Value > Range("I26").Value Then
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
-
30.03.06 12:26 #2
- 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.
-
30.03.06 12:50 #3
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
-
30.03.06 14:32 #4
- 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.
Du suchst in Spalte E einen Maximalwert. (z.b: E30)ich habe eine exceltabelle, in der ich in der spalte E das maximum suche.
Wenn in E30 der Max wert ist, ist die Spalte demzufolge 30nun soll ab dieser zelle in der sich das maximum befindet die zeilennummer des ersten positive wert gefunden werden
wieso nun doch E60 wenn du spalte E durchsuchst und E30 = Max ist?dieser wert (E60) soll ausgegeben werden und der wert in spalte A60 und D60
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?
-
30.03.06 17:17 #5
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
-
31.03.06 11:10 #6
- 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.
-
31.03.06 22:54 #7
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
-
03.04.06 09:41 #8
- Registriert seit
- Nov 2003
- Ort
- Tecklenburg (NRW)
- Beiträge
- 258
Du könntest es z.B. über
machenCode :1 2 3 4 5
Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("A1") Then <Anweisung> End If End Sub
Das tritt aber nur ein, wenn du die Zelle (In diesem Fall A1) verlässt
-
03.04.06 09:47 #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ß daniGeändert von Fizzelfritz (03.04.06 um 10:09 Uhr)
...irgendwas ist immer
-
03.04.06 10:10 #10
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
-
Programm zum Verschlüsseln von Excel Dateien Brauche HILFE
Von Roma3 im Forum Visual Basic 6.0Antworten: 9Letzter Beitrag: 01.04.08, 16:12 -
Brauche Hilfe, Visual Basic im Excel
Von dreamli im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 28.04.06, 12:43 -
Brauche Hilfe mit Excel Plugin
Von RMI_17 im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 04.10.05, 15:02 -
Brauche Hilfe bei einem Excel-Diagramm
Von lp-chester im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 31.08.05, 22:18 -
statistiken im excel, brauche hilfe
Von chiefwiegam im Forum Office-AnwendungenAntworten: 10Letzter Beitrag: 15.03.04, 12:37





Zitieren
Login





