Clever-Excel-Forum

Normale Version: Range Cells Vba
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Manch verstehe ich die (Excel) Welt niicht mehr. Bin gerade dabei mein Programm ein bißchen umzubauen.
Ich habe hier einen Code, der aus einer Liste Werte heraussucht und in eine andere Tabelle überträgt.


Code:
Dim rng As Range
Dim i, j As Integer
Dim Sakt As Variant
Public WSname As String

Sub DataSearchCopy()

ActiveCell.Select
   rNr = ActiveCell.Row
   WSname = Cells(rNr, 3).Value
   
Set rng = Sheets(WSname).Range("B3:B140")

   For i = 7 To 20
       Sakt = CStr(Sheets("Analyse").Cells(i, 2).Value)
       For j = 2 To 6
           rng.Cells(Application.Match(Sakt, rng, 0), j).Copy Worksheets("Analyse").Cells(i, j + 1)
       Next
   Next

End Sub

Funktioniert so auch!
Bloss kann ich den Range bei Set rng nicht gegen eine Range-Cells-Konstruktion austauschen


Code:
Set rng = Sheets(WSname).Range(Cells(3,2),Cells(140,2))

Also, so funktioniert es nicht. Huh

...hat jemand eine plausible Erklärung, warum?
Hallo,

versuchs mal so

Code:
With Worksheets(WSname)
Set rng = .Range(.Cells(3,2),.Cells(140,2))
End With
Hallo 

Set rng = Sheets(WSname).Range(Cells(3,2),Cells(140,2))

verstehe ich nicht so ganz, bei mir klappt der Code wenn ich damit zum Test einen Bereich ausfülle.   Range(Cells(3, 2), Cells(140, 2)).Value = "a"
Was ist mit Sheets(WsName), gibt es dieses Blatt??

mfg  Gast 123
Hallo Gast 123,

wenn WSName mit dem gerade aktiven Tabellenblatt identisch ist oder im gleichen Tabellenmodul ist, dann geht das. Ist dies anders, kommt es zum Fehler.
Habs gerade mit den Punkten versucht. Geht auch nicht.

Mit dem normalen Range funktioniert es perfekt. Einfach auf einer Tabelle mit den Werten(WSname) Zelle aktivieren dann mit Shortcut Makro (DataSearchCopy) starten. Danach wird eine Liste mit div.Werten erstellt, mit denen wiederum weitere Brerechnungen ausgeführt werden können.
Hallo,

(14.09.2017, 19:23)lapunta schrieb: [ -> ]Habs gerade mit den Punkten versucht. Geht auch nicht.

Hast Du die Punkt auch vor den beiden Cells gesetzt? Dann muss es gehen.
Na, ich hab's sogar aus deiner Antwort rauskopiert und eingepasted.

... und soweit ich weiß, braucht man die Punkte auch nur bei  with . - oder falls Weihnachten auf Ostern fällt.
(14.09.2017, 21:11)lapunta schrieb: [ -> ]... und soweit ich weiß, braucht man die Punkte auch nur bei  with . - ...

Das hast Du genau richtig erkannt! Siehe Vorschlag von Stefan.

Gruß Uwe