Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
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

Codefehler Medienbibliothek

Codefehler Medienbibliothek
24.06.2013 09:10:39
Leitz
Hallo!
Habe ein Problem mit diesem Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B39:B43]) Is Nothing Then Range("D1") = 1 'Änderungen Registrierung
End Sub
Fehler beim kompilieren:
[B39:B43] = Projekt oder Bibliothek nicht gefunden.
Bitte um Eure Hilfe
Leitz Gerd

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Codefehler Medienbibliothek
24.06.2013 09:26:16
JACKD
Hallo Gerd Probier es mal mit
Application.intersect
Grüße

vergiss [] schnell wieder
24.06.2013 09:33:57
Rudi
Hallo,
If Not Intersect(Target, Range("B39:B43")) Is Nothing Then Range("D1") = 1
Gruß
Rudi

AW: vergiss [] schnell wieder
24.06.2013 09:57:28
JACKD
Hallo Rudi....
Hab grad mal bissl gestöbert.. aber ich finde nix zu den eckigen Klammern..
Wärest du so nett mir das kurz zu erklären (was sich dahinter verbirgt und warum man die nicht nimmt) ?
DAs man die nicht nehmen sollte steh im Netz, aber nicht warum .. (Zumindest was ich gefunden hab)
Grüße
Und vielen Dank

nichts gefunden ;-) ich schon....
24.06.2013 10:08:43
Robert
Keine eckigen Klammern [Bearbeiten]
Verwenden Sie für Zellbereiche nicht die Schreibweise in eckigen Klammern:
[b3] = [d4]
Schreiben Sie stattdessen (Ausführungszeit ca. 66% von vorigem):
Range("B3").Value = Range("D4").Value
Noch etwas schneller (Ausführungszeit ca. 90% von vorigem bzw. 60% von ersterem):
Cells(3,2).Value = Cells(4,4).Value ' Cells(ZeilenNr, SpaltenNr)

Anzeige
AW: nichts gefunden ;-) ich schon....
24.06.2013 10:29:17
JACKD
Hallo Robert.
Vielen Dank für deine Atwort.
Dies hab ich auch gefunden. (Zumindest so ähnlich)
Jedoch ist das für mich keiner Erklärung. Sondern nur eine anweisung wie man damit umgehen soll.
Erklärt aber die Ursache nicht....
Grüße

wieso-ohne Klammern schneller...owT
24.06.2013 10:33:29
Robert

Das ist
24.06.2013 10:40:11
JACKD
eine Aussage wie
"Mit E10 verbraucht man mehr Sprit"
"Warum"
"Weil man häufiger Tanken muss"
Nimm es mir nicht über Robert,
Ich würde gern verstehen, was
Excel mit eckigen Klammern anders macht (wieso dies die performance beeinflusst)
Grüße

AW: Das ist
24.06.2013 10:56:04
Rudi
Hallo,
die [] sind die Kurzform von Evaluate(), d.h. der Ausdruck muss mühselig interpretiert werden.
du kannst auch eine Rechnung z.b. x=[5*3]einschreiben. Das ist aber eklatant langsamer als x=5*3
Sub aaa()
Dim t, i, x
t = Timer
For i = 1 To 10000
x = [i*10]
Next
Debug.Print Timer - t
t = Timer
For i = 1 To 10000
x = i * 10
Next
Debug.Print Timer - t
End Sub

Gruß
Rudi

Anzeige
Vielen Dank Rudi
24.06.2013 11:01:23
JACKD
Das hab ich gesucht =)
Grüße

AW: Das ist
24.06.2013 10:59:39
Luschi
Hallo JACKD,
lt. Excel2010-Vba-Hilfe:
Die Verwendung eckiger Klammern (z. B. "[A1:C5]") entspricht dem Aufruf der Evaluate-Methode mit einem Zeichenfolgenargument.
Evaluate kann aber ein bischen mehr als nur Zellinhalte lesen/schreiben - und das alles muß von Excel richtig zugeordnet werden (und verbraucht eben Rechenzeit)
Das ist wie der Unterschied zwischen einem Universalgenie und einem Spezialgenie. Bei einer Problemstellung auf den Fachgebiet des Spezialgenies wird auch das Universalgenie zur richtigen Lösung kommen - aber eben ein bischen später.
Gruß von Luschi
aus klein-Paris
PS: Trotzden lasse ich mir die Verwendung der eckigen Klammern nicht vermiesen, besonders dann, wenn ich einen definierten Namen ansprechen will:
[meinDefName] entspr. ThisWorkbook.Names("meinDefName").ReferstoRange
(weil es auch beim Aufruf in einem AddIn klappt!)

Anzeige
Hallo Luschi
24.06.2013 11:04:17
JACKD
Vielen Dank auch für deine Antwort.
Den vergleich find ich schön =)
Vermiesen will ich es mir auch nicht alles (da ich es zugegebenermaßen noch nie selber verwand hab).
Ich hatte nur gedacht, dass es ja seine daseinsberechtigung irgendwo her haben muss (sonst gäbe es den Befehl vermutlich nicht)
=)
Grüße

[meinDefName] ist ja auch OK
24.06.2013 11:11:19
Rudi
Hallo,
vor allem, da man dann immer den Wert des Namens erhält und sich nicht darum kümmern muss, ob es sich beim Bezug des Namens um einen Bereich, eine Konstante oder eine Formel handelt.
Gruß
Rudi

AW: vergiss [] schnell wieder
24.06.2013 10:33:03
Leitz
Hallo!
Funktioniert perfekt dank Rudi!
Herzlichen Dank!
LG
Leitz Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige