Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Len-Funktion??

Len-Funktion?
15.03.2006 13:19:35
Matthias
Hallo,
ich möchte einzelne Bestandteile einer Zelle an verschiedene Variablen übergeben können. Mit diesen Werten soll daraufhin eine Berechnung durchgeführt werden. Als Trennzeichen der Wörter habe ich einen Slash (/) festgelegt. Nur will das nicht so recht klappen. so soll das aussehen:
wenn in der zelle steht: Berechne/Quartal1/Quartal2 soll das wachstum von Qartal 2 zu Qartal 1 berechnet werden (also (Quartal2/Quartal1)-1)
Dazu möchte ich die beiden Quartale an eine Variable übergeben können und durch den Befehl "Berechne" die Berechnung anstoßen.
Ich dachte an eine Len-Funktion. Aber ich weiß ehrlich gesagt nicht, wie ich die Ausdrücke zunächst an die Variablen übergeben soll und daraufhin die Berechnung durchführen. hat jemand eine Idee? Ich bin in VBA leider (noch) nicht so fit.
Grüße Matthias

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Len-Funktion?
15.03.2006 13:56:58
Harald
Hallo Matthias,
imho ist das zu fehleranfällig.
Schreib die Quartalswerte gleich in getrennte Zellen.
Nicht Quartal1 sondern nur die 1.
Dann mußt du dich nicht mit Rechtschreibfehlern (siehe dein Beitrag "Qartal und Quartal") und/oder unbeabsichtigten Leerzeichen rumärgern.
Gruss Harald
Wo ist hier im Bsp. mein Fehler
15.03.2006 13:58:39
Matthias
Hallo,
ich habs mal so versucht jetzt, aber irgendwie wird durch aufruf der funktion nichts an die Variablen übergeben
Function Abweichung() Dim strBefehl As String Dim strBezug As String Dim strJahr As String Dim AWF As WorksheetFunction Dim intRechenbefehl As String Dim intErsteBezugsgröße As String Dim intZweiteBezugsgröße As String Application.Volatile Set AWF = Application.WorksheetFunction intRechenbefehl = Left(strBefehl, AWF.Find("/", strBefehl) - 1) intErsteBezugsgröße = Mid(strBefehl, AWF.Find("/", strBefehl) + 1, _ AWF.Find("/", strJahr) - AWF.Find("/", strJahr) - 1) intZweiteBezugsgröße = Right(jahr, Len(jahr) - AWF.Find("/", jahr) - 1) End Function
Hat jemand eine Idee?
gruß Matthias
Anzeige
AW: Wo ist hier im Bsp. mein Fehler
15.03.2006 15:06:21
Sylvio
Hallo Matthias
was steht den in der Variable strBefehl drin? Sie wird ja nicht an deine Funktion übergeben bzw. ist leer.
Gruß Sylvio
neee, UDF!
15.03.2006 21:35:18
MichaV
Hallo Matthias,
ich glaube, Du willst eine UDF basteln. Das geht prinzipiell so:
In ein allgemeines Modul schreibst Du eine "Benutzderdefinierte Funktion" (UDF):
Function berechne(Wert1, Wert2) dim x msgbox Wert1 msgbox Wert2 x=Wert1+Wert2 berechne=x End Function
Nun kannst Du diese Funktion aus Excel heraus mit Variablen füttern. Schreibe einfach in eine Zelle =berechne(A1;B1)
Gruß- Micha
PS: Rückmeldung wäre nett.
Wie meinst du das?
15.03.2006 22:57:27
Matthias
Hi Micha,
danke für deine Rückmeldung. Aber ich versteh nicht so ganz, wie du das meinst. Wie soll ich die Funktion dann zur Ausführung bringen?
Ich hab mich grade mit meinem Bruder unterhalten, der mit dir schonmal Kontakt hatte bezüglich einer Frage. Ich habe nun versucht, seine Idee umzusetzten komme aber auch nicht weiter. Ich habe dir hier nochmal die Bsp-Datei angehängt und hoffe, dass du dich erinnerst.
https://www.herber.de/bbs/user/31943.xls
Das Prinzip soll schon so ablaufen wie ich dachte, da ich die Berechnung ja automatisch anstoßen will, wenn die Zellen durchlaufen werden. Aber ich komme mit der Übergabe des Strings nicht ganz klar, weil ich nicht weiß, wie ich diesen wenn ich an der jeweiligen Stelle angekommen bin durchlaufen soll bzw. wo ich die Abfrage des Strings platzieren soll. Daher finden sich in der Datei momentan 2 Module, die nicht miteinander verknüpt sind.
Vielleicht kannst du einfach nochmal nen blick drauf werfen, du müsstest dich ja schon ein wenig damit auskennen.
Grüße Matthias
Anzeige
AW: Wie meinst du das?
15.03.2006 23:09:40
MichaV
Hallo,
ich überlege gerade, ob Du meinen Hinweis Schreibe einfach in eine Zelle =berechne(A1;B1) übersehen hast. Also nochmal. Da ich keinen Schimmer habe, was Du mit Deinen Funktionen berechnen willst, hier ein Beispiel, wie das mit der Variablenübergabe funzt:
In irgendein Modul (die kann man nicht verknüpfen):

Function AbweichungBerechnen(Wert1, Wert2)
Dim Abweichung 'As Integer
Abweichung = (Wert1 / Wert2) - 1
AbweichungBerechnen = Abweichung
End Function

Und so rufst Du diese Funktion auf:
Layout
 BCDE
4200220052006-0,001994018
5Gegenrechung:-0,001994018
Formeln der Tabelle
E4 : =abweichungberechnen(B4;D4)
E5 : =2002/2006-1
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Wie meinst du das?
15.03.2006 23:58:02
Luc:-?
Hallo Micha,
könnte es sein, dass die benötigte udF auf einen Einsatz von Evaluate hinausläuft? Da hab ich schon was. Ansonsten könnte Matthias ja auch einen Namen definieren und das dann im Formelteil mit =AUSWERTEN(zelle) lösen.
Gruß an euch
Luc :-?
PS@Micha: Wie lange hast du denn in Kopenhagen warten müssen, dass du dir die Zeit bei Herber vertreiben konntest? ;-)
AW: Wie meinst du das?
16.03.2006 08:13:53
MichaV
Hi Luc,
warum? Er will Variablen uebergeben. Klar könnte man es mit Auswerten machen, aber das wäre aus meiner Sicht fuer diesen Fall ein bischen ueberzogen.
Ich hab nur eine Stunde warten muessen. Doof war, dass Frau und Kinder in Berlin bereits auf dem Weg zum Flughafen waren, um mich abzuholen, das hat mich geärgert. Also kurze Zeit nur warten, aber wenn da ueberall Computer rumstehen, muss kann ich mich ja nicht nur daneben setzen.
Gruss- Micha
Anzeige
@Micha: Das sieht dir ähnlich! :-) Gruß owT
17.03.2006 15:09:09
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige