Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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
Inhaltsverzeichnis

Range in anderen Workbook per Maus auswählen.

Range in anderen Workbook per Maus auswählen.
01.06.2016 14:11:21
Peter
Hallo miteinander,
bin neu hier im Forum, nutze als Leser euer Forum aber schon ne ganze Weile.
Hier die Idee:
Mir schwebt etwas vor, das es Excel intern beim Erstellen von Diagrammen gibt. Es geht eine Eingabeform auf, und der User kann per Maus einen Bereich (auch in einem anderen offenen Workbook) markieren. Die Eingabeform gibt dann einen Bezug an VBA zurück, damit ich die Daten aus dem angegebenen Bereich weiter verarbeiten kann.
Habt ihr da ne gute Idee wie so was einfach umzusetzen ist?
Evtl. ähnlich wie Kalenderelement in Userforms.
Merci für euren Input
Gruß
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
das geht nicht ...
01.06.2016 15:07:34
Rudi
Hallo,
... in einem anderen Workbook.
Gruß
Rudi

Doch, mit Umwegen
02.06.2016 02:13:03
Michael
Hi zusammen,
ich habe es mal ausprobiert, die externe Datei & dann dort die Inputbox "direkt" zu öffnen - wie Rudi bereits geschrieben angekündigt hatte, ging es nicht.
Aber: man kann in der auszulesenden Datei ein Makro hinterlegen, das diese Arbeit übernimmt.
In der auszulesenden Datei im Modul1:
Option Explicit
Sub WerteHolen()
Sheets(2).Range("C3") = _
Application.InputBox(prompt:="Bereich", Type:=8).Address
End Sub
Function FktWerteHolen(shName As String) As String
Sheets(shName).Select
FktWerteHolen = _
Application.InputBox(prompt:="Bereich", Type:=8).Address
End Function
Die Sub schreibt den Wert an eine bestimmte Stelle, die dann vom Makro abgegriffen werden kann, springt aber sehr wahrscheinlich an das vorm Speichern zuletzt geöffnete Blatt.
Die Function wählt erst das Blatt aus und öffnet dort die Inputbox.
In der aufrufenden Datei steht irgendwo (konkret habe ich's im Sheets(2) getestet):
Option Explicit
Sub WerteExtern()
' kompletter Pfad steht in C2
Application.Run "'" & Range("C2").Value & "'!WerteHolen"
'beim oberen Aufruf wurde nichts "übernommen", aber beim Debuggen
'mit F8 kann man mitbeobachten, wie der Wert dort in C3 geschrieben wird
'beim nachfolgenden Aufruf wird der gewählte Bereich ausgegeben,
'und zwar aus der als Parameter übergebenen "Tabelle1"
MsgBox Application.Run("'" & Range("C2").Value & "'!FktWerteHolen", _
"Tabelle1")
End Sub
Für den echten Praxis-Einsatz sollte man
- die externe Datei sauber öffnen & schließen
- die function as variant definieren, damit man verschiedene "Zustände" transportieren kann:
 a) Blatt nicht gefunden
 b) kein Wert gewählt (kann man auch vorbelegen)
 c) Abbruch durch Benutzer
- das Sheets().select UND v.a. die Inputbox mit Errorhandling versehen: letztere ist etwas "dreckig" programmiert und gibt bei Abbruch nicht einfach einen "" zurück, sondern wirft einen Error.
Aber mit "VBA gut" sollte das kein Thema sein.
Schöne Grüße,
Michael

Anzeige
AW: Doch, mit Umwegen
06.06.2016 14:05:37
Peter
Hallo miteinander,
sorry, war ein paar Tage beruflich unterwegs.
Erst mal danke, das ihr euch so viel Mühe damit gemacht und schon probiert habt.
@Michael: Bei wechselnden immer neuen Sekundär Workbooks, würde das heißen, den VBA Code irgendwie da hinein kopieren, nutzen und dann wieder löschen?
Ich möchte das Ganze nutzen, um Messtechnik Daten in eine Art automatisierten Bericht zu bringen.
Die meisten Messgeräte können irgendwie nach Excel exportieren, so das ich ein Datenworkbook habe.
Die Idee ist jetzt, das der User auf nen Button clickt, eine Art Inputbox oder Userform aufgeht, er wählt in dem Messgerätefile die Daten aus, und hole mir die dann per VBA hart rüber, damit ich nicht dauern updaten brauche.
Vielen Dank derweil...
Gruß
Peter

Anzeige
AW: Doch, mit Umwegen
07.06.2016 16:59:20
Michael
Hi Peter,
tja, ich war davon ausgegangen, daß es um "vorhandene" Dateien geht, nicht um solche, die immer wieder extern neu erstellt werden.
Aber wenn es um Meßwerte geht, wozu dann überhaupt eine händische Bereichsmarkierung? Man kann doch von vornherein unbenötigte Tabellenbereiche vom Import ausschließen (etwa "importiere ab Zeile 8 und lasse die untersten 3 Zeilen weg").
Für mich erhebt sich hier aber die Frage: handelt es sich bei den Meßwerten überhaupt um eine "echte" Exceldatei und nicht etwa um .csv?
Aber sei's drum: sollte eine Nutzereingabe unbedingt nötig sein, fällt mir eigentlich nur dieser Umweg ein: Du importierst alle Daten (z.B. ein komplettes Tabellenblatt) in ein temporäres Blatt, läßt den Anwender dann den Bereich auswählen, kopierst ihn dahin, wo er hinsoll und leerst das temporäre Blatt wieder.
Schöne Grüße,
Michael

Anzeige
AW: Doch, mit Umwegen
09.06.2016 17:06:51
Peter
Hallo Michael,
danke erst mal... manchmal sieht man das offensichtliche nicht.
Also es sind wirklich echte Exporte nach Excel, die aus der jeweiligen Steuersoftware der verschiedensten Geräte exportierbar sind.
Das Ganze dient ein wenig der Vorbereitung für ein größeres VBA Projekt. Endziel ist es, eine automatisierte Berichtserstellung zu kreieren, die von Geräteherstellern losgelöst und damit komplett gestaltbar ist.
Idee ist, das man sich verschiedene Registrierkarten in einer User Form aufmachen kann, je nach dem wie viele und verschiedene Messungen man gemacht hat. Je nach Auswahl was gemessen wurde (auf der einzelnen Registrierkarte soll man dann die Messwerte und Referenzwerte aus den verschiedensten Quellen (aber alle in Excel exportiert) anwählen und automatisiert und standardisiert darstellen können. Als weiteres soll man dann je nach Messverfahren die meist üblichen Beurteilungen und Empfehlungen anklicken können.
Das hier ist quasi ein wenig Recherche, wie man die Daten aus den verschiedensten Quellen in eine Datei zusammenholen könnte ohne abzutippen und trotzdem endflexibel zu sein (wenn zum Beispiel unsre Messung aufwärts Richtung hat, aber die Referenz abwärts.)
Ich glaube dein Vorschlag bringt by the way noch einen Haufen Vereinfachungen beim anderweitigen Handling mit.
Automatisierter Import ist mir nicht so lieb, da er voraussetzt, das die Exportdatei immer gleich ist.
Manche alten Referenzen aus den 70er Jahren sind aber später einfach in Excel getippt worden, da findest du immer wieder was anderes, was der Sekretärin früher so alles einfiel (verbundene Zellen mehr oder weniger große Zelle mit Umbruch bei der einen, viele Zellen mit gemeinsamen Rahmen bei der anderen. Wenn der User den Bereich markiert, wo echt Daten sind umgehe ich das.
Insofern DANKE, war echt hilfreich.
Geniales ist immer einfach, kompliziert ist zu einfach.
Gruß
Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige