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

Bereichnamen vergeben - wie?

Bereichnamen vergeben - wie?
18.05.2006 12:17:22
Hotte
Hallo Leute im Forum,
kann mir jemand sagen, wie man Zellbereiche mit Namen versehen kann aufgrund eines Kriteriums? z. B.: in Spalte B steht ein string, dessen 1. Zeichen mit 1 von 8 Konstanten vergliechen werden soll. Bei zutreffen soll der Bereich so groß sein, solange diese Prufung in B zutrifft. So alle 8 Konstanten abfragen. Die Konstanten heißen 1 bis 8 (als Zeichen). Der Bereich umfasst Spalte B bis CA. Bereichsnamen setzt sich zusammen aus dem Wort "Monat." & Registernamen & weiterer Konstante bzw hier den Reststring(3;20) aus Spalte N. Wie kann man dies per VBA machen. Hat wer Tipp oder sogar VBA? Rückantwort wäre prima!!
Gruß, Hotte

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

Betreff
Datum
Anwender
Anzeige
AW: Bereichnamen vergeben - wie?
18.05.2006 12:45:41
Reinhard
Hi Hotte,
das Select ist drinnen weil irgendwas mit dem Add schief läuft, naja, ich stelle dazu gleich eine Anfrage.
ungetestet:
Option Explicit
Sub tt()
Dim zei As Long, anf As Long
Range("B1").Select
zei = 1
anf = 1
While Cells(zei, 2) <> ""
zei = zei + 1
While Left(Cells(zei, 2), 1) = Left(Cells(zei - 1, 2), 1)
zei = zei + 1
Wend
ActiveWorkbook.Names.Add Name:="Bereich" & Left(Cells(zei - 1, 2), 1), _
RefersTo:="=Tabelle1!B" & anf & ":CA" & zei - 1
Wend
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
neuer Code
18.05.2006 12:53:03
Reinhard
Hi,
Sub tt()
Dim zei As Long, anf As Long
Range("B1").Select
zei = 1
anf = 1
While Cells(zei, 2) <> ""
zei = zei + 1
While Left(Cells(zei, 2), 1) = Left(Cells(zei - 1, 2), 1)
zei = zei + 1
Wend
ActiveWorkbook.Names.Add Name:="Bereich" & Left(Cells(zei - 1, 2), 1), _
RefersTo:="=Tabelle1!B" & anf & ":CA" & zei - 1
anf = zei
Wend
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: neuer Code
18.05.2006 13:15:53
Erich
Hallo Reinhard,
versuchs mal mit
RefersTo:="=Tabelle1!$B$" & anf & ":$CA$" & zei - 1
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Ja, so geht es, merci o.w.T
18.05.2006 13:41:30
Reinhard

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Ja, so geht es, merci o.w.T
18.05.2006 13:48:52
Hotte
Hallo Reinhard und Erich,
danke für die Post - muss ja erst einmal ausprobieren. Funktioniert: es wird der Bereich0 bis Bereich8 angelegt. Super! Bin noch am testen und probieren gewesen, weil ich gerne diese Routine durch alle 12 sheets laufen lassen wollte und der Bereichsname folgend lauten sollte: Monat.01.Findorff bei Bereich1; Monat.01.Gröpelingen bei Bereich2 usw. dann zum Register "02", hier wie zuvor: Monat.02.Findorff usw. Aber das klappt bei mir nicht. Lasse ich euer script beim 2. Register durchlaufen - keine Änderung. Könnt ihr mir bitte hier noch behilflich sein - kriege ich nicht hin. Poste gleich Beispiel.
DANKE !! Gruß Hotte
Anzeige
AW: Ja, so geht es, merci o.w.T
18.05.2006 14:10:21
Reinhard
Hi Hotte,
da nicht Monat.01.Findorff1 sondern Monat.01.Findorff11 als Name entsteht und ich jetzt weg muss, ist die Frage noch offen.
Sub tt()
Dim zei As Long, anf As Long, Namen, n As Integer, Bez As String
Namen = Array("Findorff", "Gröpelingen", "Buxtehude")
n = 0 'knann entfallen ist aber deutlicher
zei = 1
anf = 1
While Cells(zei, 2) <> ""
zei = zei + 1
While Left(Cells(zei, 2), 1) = Left(Cells(zei - 1, 2), 1)
zei = zei + 1
Wend
Bez = "Monat." & Right("0" & n + 1, 2) & "." & Namen(n) & Left(Cells(zei - 1, 2), 1)
ActiveWorkbook.Names.Add Name:=Bez & Left(Cells(zei - 1, 2), 1), _
RefersTo:="=Monat." & Right("0" & n + 1, 2) & "!$B$" & anf & ":$CA$" & zei - 1
n = n + 1
anf = zei
Wend
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Ja, so geht es, merci o.w.T
18.05.2006 14:14:05
Hotte
Hallo Reinhard,
bin selbst sehr für Höflichkeit und "Thanks". Muss aber erst einmal selber tüfteln - so z. B. dass die Namen nicht in der UserForm TreeView erscheinen, wo ich sie gerne auch hätte. Poste die Datei noch - dauert aber einen Augenblick. Danke vorerst!!
Gruß
Hotte
AW: Ja, so geht es, merci o.w.T
18.05.2006 16:39:55
Hotte
Hallo Erich und Reinhard,
anbei Datei. Im Modul "BereichsnamenVergeben habe ich mein Anliegen versucht zu beschreiben. Vermutlich habe ich vorher etwas unglücklich ausgedrückt. Das bisherige Ergebnis durch euch ist schon die fast perfekte Lösung! Ganz prima!! Schaut doch bitte, ob der letzte Schliff noch so gemacht werden kann wie ich es mir vorstelle? Kann man vorher pauschal alle Namen löschen, wenn die eigentliche Routine durchlaufen wird? Wäre toll, von euch wieder zu lesen! Großen Dank. Gruß, Hotte
Datei mit Bitte: https://www.herber.de/bbs/user/33756.xls
Anzeige
AW: Ja, so geht es, merci o.w.T
18.05.2006 22:59:50
Erich
Hallo Hotte,
probier mal - nachdem du die Blätter in Monat.01 und Monat.12 umbenannt hast:
Sub tt()
Dim zei As Long, anf As Long, Namen, n As Integer, Bez As String
Dim mm As Integer, grup As Integer
Namen = Array("Findorff", "Gröpelingen", "Hemelingen", "Huchting", _
"Neustadt", "Obervieland", "Ostertor", "Tenever_Vahr")
For mm = 1 To 12 Step 11 ' step 11 ist nur zum Test für Blätter Monat.01 und Monat.12
Bez = "Monat." & Right("0" & mm, 2)
With Sheets(Bez)
n = 0
anf = 3
zei = 3
While .Cells(zei + 1, 2) <> ""
zei = zei + 1
While Left(.Cells(zei, 2), 1) = Left(.Cells(zei - 1, 2), 1)
zei = zei + 1
Wend
grup = Left(.Cells(zei - 1, 2), 1) - 1
ActiveWorkbook.Names.Add Name:=Bez & "." & Namen(grup) & grup, _
RefersTo:="=" & Bez & "!$B$" & anf & ":$CA$" & zei - 1
n = n + 1
anf = zei
Wend
End With
Next mm
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Spitze!! Ja, so geht es, merci o.w.T
19.05.2006 11:05:23
Hotte
Hallo Erich,
einfach super! Genau so wollte ich es gerne haben. Bist ja noch spät dabei gewesen. Bin erst jetzt ins Büro. Schaue mir nachher an, worin genau der Unterschied liegt zu zuvor. Ist jetzt auch im TreeView drin. Ganz prima. Danke und schönes Wochenende. Gruß, Hotte
OT was ist ein treeview?
19.05.2006 11:53:26
Reinhard
Hallo,
klingt nach Verzeichnisbaum o.ä.
Ich fand Treeview-Control als Zusatzsteuerelement bei Userforms.
Leider überfordert mich die Hilfe zu Treeview-Control ein wenig, ich kann auch mit dem Cube-Ding nix rechtes anfangen:-(
Kann mal bitte jmd ein Beispiel bringen anhand dessen ich erahnen könnte was man mit dem Treeview-Control so machen kann?
Und wie ist die Aussage von Hotte, "Ist jetzt auch im TreeView drin" zu deuten. Wie kam "es" in Treeview rein?
Gruß
Reinhard
Anzeige
AW: OT was ist ein treeview?
19.05.2006 13:52:17
Hotte
Hallo Reinhard,
die komplexe Einsatzmöglichkeit kann ich auch noch nicht umfassend so mitteilen - müsste ich in der Hilfe alles durchlesen. Aber ich benutze es, um Dateien bzw. sheet in einer Hierarchie darzustellen und habe Sprungmarken dadurch. Man kann z. B. einen Dateipfad begrenzen, ab dort dann alle Ordner und Dateien als Baum abzeichnen lassen und aufgrund der Auswahl können dann z. B. Aktionen mit der Datei durchgeführt werden. Simples Beispiel anbei. Alt+F11, dann UserForm TreeView und laufen lassen. Einzelheiten müsstest du dann in den Hilfen oder Foren mal durchsuchen. Ich benutze es z. B. um best. Punkte bzw. Bereiche anzuspringen, wenn u. a. die Zeilenanzahl sich ab 1.000 ist. Gut ist es auch, in anderen scripts dann die Auswahl einfliessen zu lassen, um dann damit etwas machen zu lassen. Aber ich bin auch nur Anfänger und lerne täglich dazu. Kenne das Control auch erst 1 Woche. Ob drin oder nicht - das muss am script gelegen haben. Beim 1. wurde der Baum nicht aufgezeigt, beim 2. script ist der Baum abgebildet - wie du siehst. Man kann die Darstellung und Erscheinungsweise ändern und sicher noch vieles mehr, aber so tief bin ich da noch nicht drin. Muss mir auch demnächst noch einmal das Archiv durchsuchen, um aus den Fragestellungen und Antworten kurzfristig mehr zu erfahren. So - Schönes Wochenende, Gruß Hotte
https://www.herber.de/bbs/user/33787.xls
Anzeige
Bedanke mich sehr, Gruß o.w.T
19.05.2006 14:38:01
Reinhard

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige