MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 03.04.2017, 13:59   #1
Mincanad
Neuer Benutzer
Neuer Benutzer
Standard VBA - VBA Function

Ich hätte eine Fragestellung und weiß momentan nicht weiter. Sie lautet:

Erstellen Sie eine VBA Funktion "Bereichs_Maximum", sodass an diese Function ein Zellenbereich übergeben werden kann (z.B. "A1018") und die Funktion aus einer Excel-Formel aufgerufen werden kann. Die Aufgabe der Funktion ist, aus den Werten aller Zellen den größten zu bestimmen und zurück zu geben.

Vielen Dank im Vorhinein
Mincanad ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 14:19   #2
R J
MOF Meister
MOF Meister
Standard

...smile....

klingt verdammt noch mal nach einer Hausaufgabe...

ok... wenn eine solche Aufgabe gestellt wird, dann bedeutet das i.d.R., dass Ihr Euch zumindest schon einmal damit befasst haben solltet und Du, wenn nicht komplett während des Unterrichts weggedöst, Dich wenigstens an Teile der Lösungsmöglichkeiten erinnern solltest.
Gegenfrage:
Wo klemmt es genau? Am generellen Verständnis der Erstellung einer VBA Funktion, an der Herangehensweise zur Lösung innerhalb der Funktion, an mangelnder Kenntnis fundamentaler Excel- bzw. VBA Funktionen?

Zeig doch mal, was Du bisher hast, denn einfach nur die Aufgabe von anderen erledigen zu lassen ist ja keine wirkliche Hilfe für Dich....

Erkläre mal in einfachen Sätzen, wie Du an die Lösung herangehen würdest....

__________________

Ciao, Ralf

Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Diskussion


Geändert von R J (03.04.2017 um 14:22 Uhr).
R J ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 14:36   #3
GraFri
Neuer Benutzer
Neuer Benutzer
Standard

Hallo

Diese Funktion gibt es schon in Excel =MAX(Bereich).

Oder so:

Code:

' In ein Modul und dann abspeichern. Danach In Tabelle Zelle wählen und Funktion einfügen.
Option Explicit

Function Bereichs_Maximum(ZellBereich As Range)
Dim Zelle As Range
Dim Tmp As Variant

For Each Zelle In ZellBereich
    If Zelle.Value > Tmp Then Tmp = Zelle.Value
Next Zelle

Bereichs_Maximum = Tmp

End Function
mfg, GraFri
GraFri ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 14:59   #4
R J
MOF Meister
MOF Meister
Standard

@GraFri,

ich kann es ja gut verstehen, dass Du gern helfen möchtest, aber ich habe nicht umsonst versucht Minca zum Selbstdenken anzuregen.

Im Übrigen kann man das Problem auch vollkommen ohne Schleife in einem simplen Einzeiler lösen... aber... jetzt ist Minca dran...

__________________

Ciao, Ralf

Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Diskussion

R J ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 15:49   #5
Mincanad
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Momentan habe ich folgendes:
Allgemein:

Function bmax(wert As object) As double
bmax=Application.Max(Range(Wert))
End function

Bei mir funktioniert es momentan noch nicht.
Vielen Dank
Mincanad ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 16:10   #6
R J
MOF Meister
MOF Meister
Standard

...na, sieht doch schon mal nicht schlecht aus....

Warum funktioniert es nicht:

Du übergibst der Funktion ein Objekt statt eines Range.
Du versuchst der Worksheetfunction Max das Objekt als Range zu übergeben.

Lösung

Verwende konsequenterweise gleich den Range.
Also so:
Code:

Function bmax(wert As Range) As Double
 bmax = Application.Max(wert)
 End Function
oder auch so:
Code:

Function Bereichs_Maximum(ZellBereich As Range) As Double
    Bereichs_Maximum = WorksheetFunction.Max(ZellBereich)
End Function

__________________

Ciao, Ralf

Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Diskussion

R J ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.04.2017, 16:35   #7
Mincanad
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen Dank
Mincanad ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.