Range Cells Vba
#1
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?
Top
#2
Hallo,

versuchs mal so

Code:
With Worksheets(WSname)
Set rng = .Range(.Cells(3,2),.Cells(140,2))
End With
Gruß Stefan
Win 10 / Office 2016
Top
#3
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
Top
#4
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.
Gruß Stefan
Win 10 / Office 2016
Top
#5
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.
Top
#6
Hallo,

(14.09.2017, 20: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.
Gruß Stefan
Win 10 / Office 2016
Top
#7
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.
Top
#8
(14.09.2017, 22: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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste