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

Namen anwenden per VBA

Namen anwenden per VBA
02.03.2004 16:40:13
Michael
Hallöchen,
da hab ich doch schon das nächste Problem (eigentlich ein altes um das ich mich bisher gedrückt habe)
Wie kann ich in einer Tabelle verwendete Namen per VBA wieder aufrufen?
Ich weiß zwar wie ich sie per Makro neu definiere, aber wenn ich versuche sie innerhalb eines Makros als Range heranzuziehen, scheitere ich regelmäßig.
Das folgende Makro sollte mir vorerst nur einen, durch den Namen "Bereich" definierten, Range durchsuchen und jeweils die Zeile benennen in der der Wert "halb" gefunden wurde:


Sub summieren2()
Dim Bereich As Name
Dim Zelle As Range
Dim Zeile As Integer
For Each Zelle In Bereich
If Zelle.Value = "halb" Then
Do Until Zelle.Value = "halb"
Zelle.Offset(1, 0).Select
Zeile = Selection.Row
MsgBox "Zeile " & Zeile & " !"
Loop
Else
Zelle.Offset(1, 0).Select
End If
Next
End Sub


Die Geschichte mit der MsgBox wird natürlich später durch die echte Funktion ersetzt.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namen anwenden per VBA
02.03.2004 16:51:56
Alex K.
Hallo Michael,
versuche es mal mit
For Each Zelle In ActiveSheet.Range("Bereich")
vorausgesetzt, die zum Makrolaufzeitpunkt aktivierte Tabelle ist diejenige mit den Namen "Bereich"
AW: Namen anwenden per VBA
02.03.2004 17:01:29
Michael
Danke,
der Range scheint erkannt zu werden.
Die Funktion läuft ohne Fehlermeldung durch und stoppt an der richtigen Stelle, allerdings erscheint die MsgBox nicht, obwohl der Wert in einer Reihe von Zellen enthalten ist. Ich habe auch schon versucht Zelle.Value durch Zelle.Formula zu ersetzen, aber ohne Veränderung.
AW: Namen anwenden per VBA
02.03.2004 17:07:16
Alex K.
Hallo Matthias,
dann lasse dir doch mal "Bereich.Address" und "Zeile.Address" anzeigen. Bzw. gehe mit dem Debuger mal die Schleife durch und schaue, ob deine If-Abfrage wirklich zutrift. Anscheinend ist dein "Bereich" nicht da, wo du ihn vermutest :-)
Das mit dem "Bereich" verstehe ich nocht nicht ganz. Ist dies nun eine Variable innerhalb deines Moduls? oder ein Name in einer Tabelle. Wenn Name, dann musst du über ActiveSheet.Range("Bereich") arbeiten.
Anzeige
AW: Namen anwenden per VBA
02.03.2004 17:35:09
Michael
Nee.. ich fürchte das Problem ist eher "konzeptioneller" Art.
Der Bereich ist ein Name innerhalb der Tabelle.
Ich schätze der Fehler entsteht dadurch, dass ich innerhalb des Bereicht mir eine Zelle mit Wert "halb" suche un dann den Abstand zur nächsten ermitteln will um das dann an eine Summen-Funktion als Range zu übergeben.
Das Problem ist wohl, dass ich die Sache formuliere als:
"Wenn Zelle hat Inhalt "halb" dann gehe solange eine Zelle tiefer bis Zelle hat Inhalt "halb" "
Das hört sich schon oberflächlich unsinnig an und kann wohl auch nicht klappen.
Ich glaube ich werde eher den Weg
"wenn Zelle ist "halb" dann überprüfe ob offset(1,0) ist "halb"...
...Wenn nein, dann prüfe ob Offset(2,0) ist "halb" usw...
gehen müssen.
Aber besten Dank für die Hilfe!
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige