Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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
Inhaltsverzeichnis

Set Range String

Set Range String
11.12.2012 09:38:09
Ulf
Hallo Spezialisten,
ich probiere schon einige Zeit aber ...
Ich habe die Liste aller Zellnamen in ("A1:A500") eingefügt.
Nun möchte ich die Kommentage jeder Zelle in Spakte K daneben schreiben.
Wie folgt klappt die Zuweisung zum Rangeobjekt nicht.
Dim z As Range
Dim r As Range
For Each z In Range("A1:A500")
Set r = cells(z.Value) 'hier liegt das Problem
Range("K" & z.Row) = r.NoteText
Next
Auch Varianten mit add oder dataobjekt führten nicht zum Ziel.
Dank im Voraus
Ulf

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Set Range String
11.12.2012 09:44:56
Klaus
Hi Ulf,
ungetestet:
Dim z As Range
Dim r As String
For Each z In Range("A1:A500")
Set r = z.Value
Range("K" & z.Row) = r.NoteText
Next
Grüße,
Klaus M.vdT.

AW: Set Range String
11.12.2012 09:46:23
Klaus
Hi, der letzte Code war quatsch
Dim z As Range
Dim r As String
For Each z In Range("A1:A500")
Set r = z.Value
Range("K" & z.Row) = Range(r).NoteText
Next

AW: Set Range String
11.12.2012 10:43:19
Ulf
Hallo Klaus,
klappt leider nicht
Ulf

AW: Set Range String
11.12.2012 10:18:55
Nepumuk
Hallo,
so:
Set r = Range(z.Value)
Gruß
Nepumuk

Anzeige
Wofür die Set Anweisung
11.12.2012 10:25:13
Henrik
Hallo zusammen,
kann mir jmd erklären wofür die Set Anweisung benötigt wird? Muss die sein?

For Each z In Range("A1:A500")
On Error Resume Next
Range("K" & z.Row) = Range(z.Text).NoteText
Next

Bei mir funktioniert es so.
Gruß Henrik

AW: Wofür die Set Anweisung
11.12.2012 10:34:59
Nepumuk
Hallo,
notwendig ist die Anweisung nicht. Ich hab sie mal nur hingeschrieben damit er sieht wie es funktioniert. Er sollte aber aus Performancegründen nicht über Range("K" & z.Row) auf die Zelle zugreifen sondern über die Cells-Eigenschaft. Also so: Cells(z.Row, 11) = ... Das ist fast doppelt so schnell, da VB den Buchstaben nicht erst in eine Spaltennummer umrechnen muss.
Gruß
Nepumuk

Anzeige
Danke owT
11.12.2012 10:43:40
Henrik

AW: Wofür die Set Anweisung
11.12.2012 10:40:14
Ulf
Hallo Henrik,
Set deahalb weil in A1:A500 nur die
Namen der Zellen stehen
in Excel könnte man schreiben =INDIREKT(A1)
das liefert natürlich den wert, ich will den Kommentar
Ulf

AW: Wofür die Set Anweisung
11.12.2012 10:47:26
Henrik
Hallo Ulf,
das habe ich verstanden. Mein Code macht das ja auch (On error kannst du rausnehmen, hatte nur 3 Zellen im Range benutzt.)
Die Set Anweisung war nicht nötig, dass wollte ich nur geklärt wissen.
Aber danke.
Gruß Henrik

AW: Wofür die Set Anweisung
11.12.2012 11:14:01
Ulf
Hallo Henrik
du hast recht, ich habe das getestet und festgestellt,
dass das klappt, wenn sich alles im gleichen Tabellenblatt
abspielt, wenn die Zellen mit Namen und Kommentar in anderen
Sheets sind klappts leider nicht, die Zellen sin über 10 Sheets
verteilt.
Im Direktbereich funktioniert es so:
sheets("Eingabe").range("ADR_02").NoteText
Ich müßte nun rauskriegen wo jede der Zellen ist.
Ulf

Anzeige
AW: Wofür die Set Anweisung
11.12.2012 11:27:20
Ulf
Hallo,
die Frage nach den Sheets ist doooof von mir
die stehen ja in der Nachbarspalte beim Namen einfügen.
Ich muß sie nur noch mit paar Zeichenketten-Fkt's
separieren, oder gleich die Einträge in der Spalte B nutzen.
Danke an alle die aktiv waren
Ulf

AW: Set Range String
11.12.2012 10:52:59
Ulf
Hallo Nepumuk
das hatte ich auch schon versucht,
hatte z.Value auch schon in ein Dataobjekt zwischengeparkt
und dieses dann verwendet, es bleibt aber immer ein String,
deshalb der Gedanke über ein neues Rangeobjekt mittels add,
weiß aber nicht so recht wies geht.
Ulf

Anzeige
?
11.12.2012 11:02:55
Henrik
Hallo Ulf,
das macht doch mein Code.
Im Range stehen Namen von benannten Zellen irgendwo im Blatt.
Der Code sucht über den Namen die entsprechende Zelle und schreibt davon den Kommentar in Spalte K.
Habe ich deine Frage falsch verstanden?

For Each z In Range("A1:A500")
On Error Resume Next
Range("K" & z.Row) = Range(z.Text).NoteText
Next

oder doppelt so schnell nach Nepumuk :)

For Each z In Range("A1:A500")
On Error Resume Next
cells(z.Row,11) = Range(z.Text).NoteText
Next

Gruß Henrik

Anzeige
AW: ?
11.12.2012 11:18:08
Ulf
Hallo Nepumuk
Ja aber leider nicht ohne Sheetsangabe
siehe meine Antwort an Henrik
Ulf

AW: ?
11.12.2012 11:26:55
Ulf
Hallo,
die Frage nach den Sheets ist doooof von mir
die stehen ja in der Nachbarspalte beim Namen einfügen.
Ich muß sie nur noch mit paar Zeichenketten-Fkt's
separieren, oder gleich die Einträge in der Spalte B nutzen.
Danke an alle die aktiv waren
Ulf

Versuch mal so
11.12.2012 11:49:18
Henrik
Hallo Ulf,
probier mal. Den Tabellennamen auf dem deine Zellnamen stehen musst du anpassen.

With ThisWorkbook
For Each z In .Worksheets("Tabelle1").Range("A1:A500")
On Error Resume Next
.Worksheets("Tabelle1").Cells(z.Row, 11) = Range(.Names(z.Text)).NoteText
Next
End With

Gruß Henrik

Anzeige
AW: Versuch mal so
11.12.2012 14:29:31
Ulf
Hallo Henrik,
ich habs jetzt so getestet und nach 10600 einträgen aus Zeitgründen abgebrochen,
es scheint als endet er garnicht, 500 könnten es ja sein.
Sheets("Zellnamen").Activate
Dim i As Single
i = 6
Dim z As Range
Dim r As Range
Dim wks As Worksheet
For Each wks In Worksheets
Dim Komm As String
For Each z In UsedRange
On Error GoTo 0
On Error Resume Next
Komm = Sheets(wks.Name).Range(z).NoteText
If Err = 0 Then
If Komm "" Then
i = i + 1
Sheets("Zellnamen").Range("K" & i) = Sheets(wks.Name).Range(z).NoteText
Sheets("Zellnamen").Range("I" & i) = Sheets(wks.Name).Range(z).Address
End If
End If
Next z
Next wks
Wo kanns da hängen
Ulf

Anzeige
AW: Versuch mal so
11.12.2012 15:38:48
Henrik
Hallo Ulf,
ich bin raus. Ich verstehe nicht was du willst, noch wo deine "Teil"-Codes herkommen.
Ich markiere die Frage als offen. Vielleicht findet jmd anderes Zeit.
Gruß Henrik

AW: Versuch mal so
11.12.2012 16:57:22
Ulf
Hallo Henrik,
Danke meine Doppelten Einträge haben sich auch geklärt
der Code war komplett, den UsedRange hatte ich nicht
auf das gerade aktuelle Sheet bezogen.
danke die nochmals
ulf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige