Clever-Excel-Forum

Normale Version: Eingabefeld um Bereichsnamen aufzurufen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe eine kleine Datenbank in Excel (2010) erstellt die langsam immer größer wird.
Momentan funktioniert so:
Die Tabelle hat mehrere Zeilen. Es sind 4 Spalten in einer Zeile: Id-Nummer, Bild, Größe, Farbe
Diese 4 Zellen in einer Reihe bilden ein Bereich den ich benannt habe: _Id-Nummer, So die ganze Tabelle.
Wenn ich in eine Teil-Tabelle einige diesen Bereichen untereinander einfügen möchte, wähle (oben links) aus den Namensliste (puldownmenü) ein _Id-Nummer aus und klicke drauf.
Excel springt zu den entsprechenden Bereich und markiert es.
Ich kopiere den Bereich und füge es in meine Teil-Tabelle ein. (über ein einfaches Makro) (so kommen auch die Bilder mit in die Zeile.
Über die Funktion "=_Id-Numer" geht zwar auch, aber die Bilder werden nicht eingefügt.
Also ist eigentlich ok so, aber die Namensliste wird immer größer und muss ewig scrollen bis ich die richtige Id finde.
Also meine Frage wäre. Könnte man über ein Makro, oder wie auch immer, ein Eingabefeld machen wo man über Tastatur direkt den Namen (_Id-Numer") eintragen kann, enter oder ein OK-Button und Excel spring zu den angegebenen Bereich? Vlt. könnte man es mit mein einfaches Makro kombinieren so dass alles auf einen Schlag passiert. das ist aber optional...
Es wäre nett wenn jemand mir helfen könnte.
Danke


baba_n
Moin

Das Makro sollte dann auch möglichst umfangreich gestaltet werden.
Oder man nimmt einfach den SVERWEIS().
Alles zurück, bin voll doof. Ich habe mal versucht in den Namensfeld ein ID-Nummer direkt einzutippen. passierte nix. Blöderweise habe ein Wert eingegeben die nicht vergeben wurde.
Darauf hin habe ich es nicht mehr versucht, sonder nach eine Lösung gesucht.
Also Leute, es geht so. Direkt eingeben, Enter und schon ist man in den angegebenen Bereich.
Wie doof.
......................

wenn wir schon dabei sind, würde gerne mein Makro optimieren.
Hier mein kleines Makro:

Code:
Sub Lister()
'
' Lister Makro
' Fügt Auswahl in eine Liste ein
'
' Tastenkombination: Strg+y
'
    Selection.Copy
    Sheets("BestelListe").Select
    ActiveSheet.Paste
    Rows("5:5").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.RowHeight = 65
    Range("F6").Select
    Selection.AutoFill Destination:=Range("F5:F6"), Type:=xlFillDefault
    Range("F5:F6").Select
    Range("A5").Select
End Sub

Funktion:
Bin in Feld A5
wenn ich den _Id-Nummer eingebe, springt Excel in den entsprechenden Bereich und markiert es.
führe Strg+y aus
das Makro fügt die Auswahl in Zeile 5 ein und fügt oberhalb eine Zeile hinzu
macht die Zeilenhöhe 65, kopiert die Formel aus jetzt F6 in die neue F5 ein und springt auf A5.

Jetzt kann ich das ganze wiederholen 

Problem ist wenn ich nicht in F5 bin, fügt das Makro den Bereich ein und springt auf F5 wo es oberhalb eine neue Zeile hinfügt und bleibt stehen auf F5.

ich würde gerne das Makro so modifizieren, dass egal wo die Aktive Zelle ist, wird dort den Bereich eingefügt und oberhalb dieser Zeile eine neue hinzugefügt wird. Also nicht abhängig von F5


gruß
baba_n
Hallöchen,

merke Dir die die aktive Zelle oder Adresse selbiger in einer Variable und programmiere alles relativ von dort aus

z.B.

Set rngZelle = ActiveCell

oder
rngZelle = ActiveCell.Address

Du musst nur aufpassen, bei der ersten Version "verrutscht" die Zelle mit, bei der zweiten Version bleibt die Zelldresse gleich. Kannst Du mal damit ausprobieren:

Code:
Option Explicit

Sub test()
Dim rngZelle As Range, strZelle As String
Set rngZelle = ActiveCell
strZelle = ActiveCell.Address
MsgBox rngZelle.Address & vbTab & strZelle
rngZelle.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
rngZelle.EntireRow.RowHeight = 65
MsgBox rngZelle.Address & vbTab & strZelle
'Fuer Versatz z.B. rngZelle.Offset(Zeile,Spalte)....
End Sub