Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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

Range aus Zelle auslesen

Range aus Zelle auslesen
09.11.2023 09:41:10
nightcab
Hallo, ich benötige Hilfe!

Ich habe einen Code der den Wirkungsbereich eines Makros einschränkt.
Dieser Wirkungsbereich ändert sich durch hinzufügen bzw. löschen einzelner Zeilen.
Der Wirkungbereich hier im Beispiel Range("B15:B37") ist fix und äandert sich nicht.
Jedoch habe ich in Zelle AA1 den Bereich angegeben der sich dynamisch anpasst.
Dim rngBereich As Range

Set rngBereich = Range("B15:B37") 'Hier den Bereich angeben !
If Intersect(ActiveCell, rngBereich) Is Nothing Then
....

Nun wollte ich durch...
Adresse = Cells(19, 27)

...
.Set rngBereich = Range("Adresse")

den dynamischen Bereich der Zelle AA1 steht in Range steht einfügen. Doch das geht so nicht.

Bitte um Hilfe
Gruß Christian

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 09:46:21
onur
Einfach nur:

.Set rngBereich = Cells(19, 27)
AW: Range aus Zelle auslesen
09.11.2023 12:22:33
MCO
Moin!

Du hast im Range einen Bereich aus der Tabelle angegebn, der "Adresse" heißt. Den hast und willst du aber nicht.
Du hast eine Variable mit dem Namen Adresse, hinter dem als Text dein Zellbereich steht.
Dann gib das an, dann läuft es auch.

Getestet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Adresse = Range("C19").Text
Set Rng = Range(Adresse)
Rng.Select
End Sub


Für dich müsste es dann so aussehen:
Adresse = Cells(19, 27).text

Dim rngBereich As Range
Set rngBereich = Range(Adresse) 'Hier den Bereich angeben !
If Intersect(ActiveCell, rngBereich) Is Nothing Then


Gruß, MCO
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 19:53:48
Piet
Hallo onur

Sorry, ich wollte dich nicht kränken, tut mir leid wenn es falsch rüberkam. Der Fehler ist auch nicht in deiner AW!
Es ist die AW von nightcab, vom 09.11.2023 11:03:30, wo er deinen Vorschlag in seinen Code eingebaut hat.
Das steht doch klar und deutlich hinter Intersect ein Else. Ich denke das gehört da nicht hin! Oder???
Weil es SEINE AW war, habe ich auch alle Kollegen angesprochen, ob sie das nicht gesehen haben?

Ich bin oft aufmerksam, aber du warst in dem Thread eindeutig besser: - .formula = "=SUM(
Obwohl ich sonst aufmerksam bin, ist mir dort der Schreibfehler schlicht und einfach entgangen.

mfg Piet
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 20:00:21
onur
Ob da steht
If Intersect(ActiveCell, rngBereich) Is Nothing Then

Else
....
....
End if

oder
If NOT Intersect(ActiveCell, rngBereich) Is Nothing Then

.....
.....
End If

ist Jacke wie Hose, nur die erste Version hat die völlig überflüssige (und für den Codeablauf irrelevate) Else-Zeile zu viel.
AW: Range aus Zelle auslesen
09.11.2023 19:06:57
Piet
Hallo Kollegen

ist euch und dem Frage schon mal aufgefallen, das im Code von onur hinter Intersect ein Else kommt??
Damit konnte der Code von onur auch nicht funktionieren. Das Else gehört da NICHT hin!! Man achte auf die Details!

mfg Piet
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 19:21:03
onur
Wieso fragst du "Kollegen" und nicht MICH ?
"dass im Code von onur hinter Intersect ein Else kommt?"
In WELCHEM denn genau? Im Codeschnipsel mit 2 Zeilen oder den mit 3 Zeilen ???
AW: Range aus Zelle auslesen
09.11.2023 10:05:26
nightcab
Hi onur!

Na so einfach ist das nicht. Auf das bin ich auch schon gekommen.
Doch das hat den Effekt, dass der Code der auf den Bereich wirken soll nun wieder auf alle Zellen wirkt.

Gruß Christian
AW: Range aus Zelle auslesen
09.11.2023 10:18:59
onur
Das muss natürlich OBEN stehen und nicht unten !
Dim rngBereich As Range

Set rngBereich = Cells(19, 27) 'Hier den Bereich angeben !
If Intersect(ActiveCell, rngBereich) Is Nothing Then
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 10:42:24
nightcab
Hab ich gemacht, hat den Effekt, dass das Makro wieder überall wirkt.

Ich schick dir mal den ganzen Code.


Sub Worksheet_SelectionChange(ByVal Target As Range)
'nachstehend die Angaben fürs Diagramm
Dim Title As String

Title = Range("AB1").Value
With ThisWorkbook.ActiveSheet
.ChartObjects(1).Chart.HasTitle = True
.ChartObjects(1).Chart.ChartTitle.Text = Title
End With

Range("AB1").Value = Cells(ActiveCell.Row, 2).Value 'Nahrungsmittel
Range("AC2").Value = Cells(ActiveCell.Row, 12).Value 'Gewicht
Range("AD2").Value = Cells(ActiveCell.Row, 15).Value 'Kalorien
Range("AC3").Value = Cells(ActiveCell.Row, 18).Value 'Fett
Range("AC4").Value = Cells(ActiveCell.Row, 21).Value 'Kohlenhydrate
Range("AC5").Value = Cells(ActiveCell.Row, 24).Value 'Eiweiß

End Sub

Und wie gesagt hab ich in Zelle AA1 = B15:B32 stehen. Die Anzahl der Zeilen verändert sich, die Spalten nicht.
Wenn ich nun in Spalte B auf ein Nahrungsmittel klicke das im Bereich B15:B32 steht, wird mir dieses im Diagramm angezeigt.
Wenn ich aber außerhalb irgendwohin klicke, z.B. oberhalb in einer Liste auf Büroarbeit, kommt das auch im Diagram.
Deshalb die dynamische Beschränkung auf B15:B32 die ist Zelle AA1 steht.

Wenn du also einen Code hast, der die Wirkung auf den Bereich beschränkt der in AA1 steht, dann bitte ich darum.

Gruß Christian
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 10:44:51
onur
Hääääh?
Wo, bitteschön, steht denn in diesem neuen Code DAS hier?
Set rngBereich = Cells(19, 27) 'Hier den Bereich angeben !

If Intersect(ActiveCell, rngBereich) Is Nothing Then
AW: Range aus Zelle auslesen
09.11.2023 11:03:30
nightcab
Ups... da hab ich wohl nicht richtig hingeschaut.
Ich hab das jetzt so eingetragen was zur Folge hat, dass sich die Angaben im Diagram nicht mehr ändern.
Ausserdem hab ich meinen Fehler korrigiert. AA1 = Cells(1, 27) und nicht = Cells(19, 27)
Geht aber trotzdem nicht.


Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rngBereich As Range
Set rngBereich = Cells(1, 27) 'Zelle AA1
If Intersect(ActiveCell, rngBereich) Is Nothing Then
Else


Dim Title As String
Title = Range("AB1").Value
With ThisWorkbook.ActiveSheet
.ChartObjects(1).Chart.HasTitle = True
.ChartObjects(1).Chart.ChartTitle.Text = Title
End With

Range("AB1").Value = Cells(ActiveCell.Row, 2).Value 'Nahrungsmittel
Range("AC2").Value = Cells(ActiveCell.Row, 12).Value 'Gewicht
Range("AD2").Value = Cells(ActiveCell.Row, 15).Value 'Kalorien
Range("AC3").Value = Cells(ActiveCell.Row, 18).Value 'Fett
Range("AC4").Value = Cells(ActiveCell.Row, 21).Value 'Kohlehydrate
Range("AC5").Value = Cells(ActiveCell.Row, 24).Value 'Eiweiß

End If
End Sub

Hmmm....
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 11:06:57
onur
Ich habe keine Ahnung, was sich wo ändern soll oder was du überhaupt erreichen willst.
Poste mal eine Datei dazu - am besten mit Wunschergebnis und kurzer Erklärung.
AW: Range aus Zelle auslesen
09.11.2023 11:17:53
nightcab
Das möchte ich nicht, da in der Datei zuviele persönliche Daten stehen.
Na egal, werde schon eine Lösung finden.
Aber danke für deine Hilfe!
AW: Range aus Zelle auslesen
09.11.2023 12:28:35
Yal
Hallo Night ( man spricht sich im Forum per Vornamen an ;-)

achte darauf, dass "Worksheet_SelectionChange" die Zelle wo man ankommt und nicht die Zelle die man verlassen hat, verwendet.

Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Target.Address = "$AA$1" Then 'Reagiert auf alle Zellen ausser AA1
Application.EnableEvents = False
With ThisWorkbook.ActiveSheet.ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = Range("AB1").Value
End With
With ActiveCell.EntireRow
'wenn nur eine Zeile ("EntireRow" auf eine einzige Zelle), dann ist die zweite Zelle ("Cells(2)") die Spalte 2 dieser Zeile
Range("AB1").Value = .Cells(2).Value 'Nahrungsmittel
Range("AC2").Value = .Cells(12).Value 'Gewicht
Range("AD2").Value = .Cells(15).Value 'Kalorien
Range("AC3").Value = .Cells(18).Value 'Fett
Range("AC4").Value = .Cells(21).Value 'Kohlehydrate
Range("AC5").Value = .Cells(24).Value 'Eiweiß
End With
Application.EnableEvents = True
End If
End Sub


VG
Yal
Anzeige
AW: Range aus Zelle auslesen
09.11.2023 12:46:30
GerdL
Moin,

vermutlich suchst du dies.
Sub Worksheet_SelectionChange(ByVal Target As Range)


Dim rngBereich As Range
Set rngBereich = Range(Cells(1, 27).Text) 'Bereich mit Adresse aus Anzeigetext in Zelle AA1

Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige