Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bereichsnamen automatisch eintragen

Bereichsnamen automatisch eintragen
31.05.2008 23:14:00
Hans-Joachim
Liebe Freunde,
kaum aus dem Urlaub zurück, habe ich ein neues Anliegen zum Bearbeiten einer meiner Tabellen.
In einer Tabelle markiere ich z.B. die Zellen B2 bis F6 und gebe über die Tastenkombination Alt+E+N+D einen Bereichsnamen ein, etwa "Sp1". Als nächstes markiere ich H2 bis L6 und gebe als Bereichsnamen "Sp2" ein.
Bei vielen zu vergebenen Bereichsnamen ein mühsames unterfangen.
Gibt es nicht eine Möglichkeit, dieses mit einem Makro (und Hilfszellen [als InputBox] ?) zu bewerkstelligen?
Also Bereich markieren und über eine kleine Schaltfläche einen Bereichsnamen von dem Makro einfügen lassen, das den Namen bei der Erstellung jeweils um 1 hochzählt. "Sp3", "Sp4", "Sp5" usw.
Vielen Dank für Eure Mühe.
Gruß Hans

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereichsnamen automatisch eintragen
01.06.2008 00:38:00
Josef
Hallo Hans,
vielleicht so.
' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub NamenVergeben()
Dim rng As Range, strName As String, intCounter As Integer, intIndex As Integer

strName = InputBox("Bitte den gewünschten Namen angeben:", "Namen", "Sp")

If StrPtr(strName) = 0 Or strName = "" Then Exit Sub

intCounter = InputBox("Wo soll der Zähler starten?", "Namen", "1")

If StrPtr(intCounter) = 0 Then Exit Sub

Do
    intIndex = intIndex + 1
    Set rng = Nothing
    
    On Error Resume Next
    Set rng = Application.InputBox("Markieren Sie den Bereich für den Namen [" & _
        strName & CStr(intCounter) & "]", "Auswahl Bereich " & CStr(intIndex), Type:=8)
    On Error GoTo 0
    
    If Not rng Is Nothing Then
        ThisWorkbook.Names.Add Name:=strName & CStr(intCounter), RefersTo:=rng
    End If
    
    intCounter = intCounter + 1
    
Loop While Not rng Is Nothing

End Sub


Gruß Sepp



Anzeige
AW: Bereichsnamen automatisch eintragen
01.06.2008 11:47:35
Hans-Joachim
Hallo Sepp,
das funktioniert super.
Lässt sich das vielleicht auch so einrichten, dass man diese Funktion aus einer anderen Arbeitsmappe aufrufen kann?
Also Makro in Mappe 1 gespeichert, in Mappe 2 ausführen.
Ich habe mir eine Tabelle "Arbeitsmakros" erstellt, in der alle Makros enthalten sind. Diese Makros sind Smilies in der Symbolleiste zugewiesen und werden bei Bedarf aufgerufen. Weil die Makros später in den bearbeiteten Tabellen nicht mehr benötigt werden, sind sie in diesen Tabellen auch nicht enthalten.
Habe ich probiert, nur die Zuweisung der Bereichsnamen funktioniert dann nicht, wenn das Makro aus "Arbeitsmakros" aufgerufen wird.
Vielen Dank
Gruß Hans

Anzeige
Info
01.06.2008 11:41:16
Matthias
Hallo Hans
nur so nebenbei zur Info:
zumindest ist es in XL2000 so. Ich denke das geht auch in Deiner Version
Anstatt mit der Tastenkombination Alt+E+N+D
kannst Du die Namensdefinition auch mit STRG + F3 aufrufen. Das geht schneller ;o)
Gruß Matthias

AW: Info
01.06.2008 11:54:00
Hans-Joachim
Hallo Matthias,
das klappt.
Vielen Dank für den Tipp.
Gruß Hans

Statische Namensvergabe - noch einfacher
01.06.2008 12:08:55
{Boris}
Hi Hans,
für statische Namensvergaben für Bereiche brauchst Du den Namensdialog überhaupt nicht.
Selektiere Deine Zellen und schreibe den Namen in das Namensfeld links oberhalb der Tabelle (dort, wo für gewöhnlich die Adresse der aktiven Zelle drinsteht) und schließe die Eingabe mit ENTER ab.
Grüße Boris

Anzeige
AW: Statische Namensvergabe - noch einfacher
01.06.2008 12:54:37
Hans-Joachim
Hallo Boris,
genau das ist ja der Knackpunkt. Ich wollte das automatisieren, weil es mir zu umständlich ist bei 10, 15 oder auch 20 Bereichsnamen die alle von Hand einzugeben. Die Bereichsnamen fangen in diesem Fall alle mit "Sp" an gefolgt von einer laufenden Zahl, die automatisch um den Faktor 1 erhöht werden soll.
Gruß Hans

Das war mir schon klar...
01.06.2008 13:28:52
{Boris}
Hi Hans,
...mein Beitrag war eher "Off Topic" zu verstehen. Das, was Du möchtest, geht nur via VBA. Und da hat Dir Sepp doch bereits kompetente Hilfe geleistet.
Das was Du zusätzlich möchtest, würde ich über ein Add-In lösen.
Auf jeden Fall aber musst Du Dich - sofern das Makro von woanders aufgerufen wird - auf ActiveWorkbook (und nicht ThisWorkbook) beziehen.
Grüße Boris

Anzeige
AW: Das war mir schon klar...
01.06.2008 14:08:00
Hans-Joachim
Hallo Boris,
Dein Tipp war das "i-Tüpfelchen", was mir noch fehlte.
Vielen Dank
Gruß Hans

AW: Vielen Dank für Euro Mühe
01.06.2008 14:12:00
Hans-Joachim
Hallo Leute,
vielen Dank für Eure Hilfen und Tipps.
Jetzt klappt es so wie ich möchte.
Gruß Hans

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige