Autor
|
Thema: Auswahl benennen (922 mal gelesen)
|
cossi Mitglied
Beiträge: 33 Registriert: 14.12.2006
|
erstellt am: 16. Dez. 2006 19:09 <-- editieren / zitieren --> Unities abgeben:
hi zusammen ich möchte folgende aufgabe automatisieren: es soll eine anzahl von zellen (die variabel ist) markiert werden und anschließend einen namen für diese auswahl vergeben werden. ich hab mal ein makro gebastelt, das zum teil allerdings auch aufgenommen ist. in diesem makro ist eine variable eingeführt, die jeweils die letzte gefüllte zeile ermittelt. diese variable möchte ich jetzt einbinden um die genaue auswahl der zellen zu definieren, weiss aber nicht wie ich das machen muss. wie genau muss das makro abgeändert werden damit es dann funktioniert?
Code: Private Sub CommandButton1_Click() Dim Var As IntegerVar = Sheet1.Range("A65536").End(xlUp).Row Range("A2", "A" & Var).Select ActiveWorkbook.Names.Add Name:="List", RefersToR1C1:="=Sheet1!R2C1:R9C1" End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 16. Dez. 2006 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für cossi
Hallo cossi, schau mal, ob dir das weiter hilft:
Code:
Sub x() Dim i& i = Cells(Rows.Count, 1).End(xlUp).Row ActiveWorkbook.Names.Add "test", "Tabelle1!" & Range(Cells(2, 1), Cells(i, 1)).Address 'oder Auswahl halt 'ActiveWorkbook.Names.Add "test", "Tabelle1!" & Selection.Address End Sub
Gruss, Nancy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 16. Dez. 2006 20:05 <-- editieren / zitieren --> Unities abgeben: Nur für cossi
|
cossi Mitglied
Beiträge: 33 Registriert: 14.12.2006
|
erstellt am: 16. Dez. 2006 20:18 <-- editieren / zitieren --> Unities abgeben:
danke nancy für die antwort. hmm funktioniert ledider nicht. weisst du was ich da noch machen könnte? noch ne andere frage: ist es möglich einen schon einmal definierten (also benannten) bereich zu ändern. manuell jedenfalls lässt sich das-so wie ich das sehe- nicht machen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cossi Mitglied
Beiträge: 33 Registriert: 14.12.2006
|
erstellt am: 16. Dez. 2006 21:15 <-- editieren / zitieren --> Unities abgeben:
ähmm ich hab da ne einfachere variante entdeckt: anstatt den variablen bereich immer neu auszuwählen und zu benennen, wähle ich einen fixen bereich aus (der womöglich viel zu groß ist) und vergeben an diese auswahl einen namen. falls dann später einträge gelöscht oder hinzukommen sollten werden diese automatisch miteinbezogen. naja ich hoffe das war jetzt halbwegs verständlich. trotzdem danke an alle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 17. Dez. 2006 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für cossi
Hallo cossi, Zitat: danke nancy für die antwort. hmm funktioniert ledider nicht. weisst du was ich da noch machen könnte
Du könntest den Namen des Blattes an Deinen Blattnamen angleichen ; ) Dein Blatt heißt mal wieder nicht Tabelle1 sondern Sheet1 ! Tausch mal aus, dann müßte trekkies code laufen. Das wird Dir hier wahrscheinlich in Zukunft immer wieder passieren, Du könntest alternativ auch über Sheets(1) gehen, damit sprichst Du dann nicht den Namen, sondern den Index des Blattes an. Zitat: ist es möglich einen schon einmal definierten (also benannten) bereich zu ändern
manuell: Du gehst normal über Einfügen -> Namen -> definieren -> klickst den Namen an -> und änderst unten in der Zeile den Bereich, direkt schreiben oder Maus nutzen -> OK und der Bereich ist geändert. makro: siehe trekkie ; ) Zitat: anstatt den variablen bereich immer neu auszuwählen und zu benennen, wähle ich einen fixen bereich aus (der womöglich viel zu groß ist) und vergeben an diese auswahl einen namen. falls dann später einträge gelöscht oder hinzukommen sollten werden diese automatisch miteinbezogen
hmm, da sollte man immer aufpassen nicht wirklich zu groß zu sein, sonst kommen da womöglich Werte in eine Berechnung, wo sie so überhaupt nix zu suchen haben ; ) Bereiche vergrößern sich übrigens mit, wenn Du Zellen einfügst, wenn Du also den Bereich z.B. von A1:A10 wählst und in A9 ne Zeile einfügst, geht Dein Bereich danach von A1:A11, gilt nur bei manuell definierten Bereichen, nicht bei dem makro von oben, weil Du dort mit "" arbeitest. vielleicht hilft Dir das den Bereich ein bißchen dynamischer und kleiner zu halten, aber mit der Namensanpassung sollte trekkies code ja eh laufen ; ) nett, in 10 min macht der Bäcker auf Schönen Sonntag euch allen!
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cossi Mitglied
Beiträge: 33 Registriert: 14.12.2006
|
erstellt am: 18. Dez. 2006 08:42 <-- editieren / zitieren --> Unities abgeben:
Hi runkelruebe, hoffe du hattest einen schönen sonntag morgen - danke jedenfalls für die frühe hilfe. also ich hatte schon beim ersten ausprobieren von trekkies code die namen geändert und es wollte schon damals nicht. bei mir sah dann das ganze so aus:
Code: Sub neu() Dim i& i = Cells(Rows.Count, 1).End(xlUp).Row ActiveWorkbook.Names.Add "test", "Sheet1!" & Range(Cells(2, 1), Cells(i, 1)).Address 'oder Auswahl halt 'ActiveWorkbook.Names.Add "test", "Tabelle1!" & Selection.Address End Sub
ist da etwa immer noch was falsch?wie dem auch sei, habe ich von anderer stelle auch eine lösung bekommen die folgendermaßen aussieht:
Code: Public Sub Name_definieren() Dim lngLast As Long Dim Bereich As Range lngLast = Cells(Rows.Count, 1).End(xlUp).Row Set Bereich = Range(Cells(2, 1), Cells(lngLast, 1)) ActiveWorkbook.Names.Add Name:="List", RefersToR1C1:=Bereich End Sub
und die funktioniert auch einwandfrei. also für alle die ein ähnliches anliegen haben- damit tuts (zumindest bei mir ) nochmals danke an alleEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|