Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren in String Bereich


Betrifft: Kopieren in String Bereich
von: Günni63
Geschrieben am: 13.12.2018 10:38:28

Hallo, liebe Excel Freunde!

Bin neu hier daher möchte ich mich kurz vorstellen, mein Name ist Günni und bin 55 Jahre jung. Ich arbeite in einer mittelgroßen Firma und bin häufig in Excel unterwegs. Da ich mich auch privat noch mit Excel beschäftige bekommt man natürlich immer mehr Ideen,bisher habe ich immer mit Platzhaltern gearbeitet.
Bei dieser Idee bitte ich Euch daher um Mithilfe.

Ich habe eine Arbeitsmappe mit 55 Tabellen, "Schichtplan", und "KW1 bis KW53".
In Schichtplan habe ich einen Zellbereich Range("H6:NN6") in denen ein String steht. Per Funktion Verkettet steht zum z.B. in H6 der String "KW1!B10", die Zeile bleibt immer gleich aber Sheet und Spalte ändern sich logischerweise.
Ich hoffe soweit klar!
Nun möchte ich den Namen z.B. Mitarbeiter1 der sich im Range ("C6") befindet kopieren in den Range(Zeilbereich).
Müsste ja eigendlich per For - Next Schleife zu bewerkstelligen sein.

Hier ein Auszug meines bisherigen Codes,
der aber bereits bei Set ZielBereich = Ws.Range("h6:NN6").Value
mit einem Fehler "Typen unverträglich"

Hat hier einer eine Hilfestellung für mich? Danke im voraus,

Sub AusFüllen()
Dim WB As Workbook
Dim Ws As Worksheet
Dim WSZiel As Worksheet
Dim ZielBereich As Range
Dim MitArbeiter As String

Set WB = ActiveWorkbook
Set Ws = Worksheets("Jahresplan")

MitArbeiter = Ws.Range("c6")              'Mitarbeiter der kopiert werden soll
Set ZielBereich = Ws.Range("h6:NN6").Value      'in diesen Bereich         '

End Sub


  

Betrifft: AW: Kopieren in String Bereich
von: Daniel
Geschrieben am: 13.12.2018 11:45:38

Hi
wenn du einen Zellbereich (=Range-Objekt) einer Objekt-Variablen zusweisen willst:

Dim ZielBereich As Range
...
Set ZielBereich = Ws.Range("h6:NN6")
mit .Value bekommst du nur die Werte aus dem Zellbereich ohne den Objektbezug und diese müsstest du dann einer normalen Array-Variablen zuweisen, ohne das SET:
Dim ZielBereichWerte
...
ZielBereichWerte = Ws.Range("h6:NN6").Value
Gruß Daniel


  

Betrifft: AW: Kopieren in String Bereich
von: Günni63
Geschrieben am: 13.12.2018 13:31:02

Hi Daniel,

danke für die Antwort, nur wie bekomme ich das in eine Schleife verarbeitet und in welcher
For to oder Fox each Schleife?


  

Betrifft: AW: Kopieren in String Bereich
von: Daniel
Geschrieben am: 13.12.2018 17:07:30

das hängt ganz davon ab, worüber die Schleife laufen soll und was du machen willst.
Gruß Daniel


  

Betrifft: AW: Kopieren in String Bereich
von: Günni63
Geschrieben am: 13.12.2018 23:29:08

Hi Daniel
ich dachte ich hätte mich oben einigermaßen verständlich ausgedrückt, aber gerne noch einen Versuch!
Im Zielbereich stehen somit 371 Zellen, in jeder steht ein Kalendertag, somit soll für jeden Tag die Variable für den Mitarbeiter in die entsprechende Zielzelle kopiert werden.
Also in "H6" steht z.B. "KW01!b22", in Zelle "I6" "KW01!c22", usw. bis "NN6" "KW53!v22", dieses sind ja alles Zieladressen!
Die Schleife soll nun alle markierten Zellen abarbeiten indem der gleiche Name kopiert wird.
ich hoffe du kommst mit meiner Formulierung zurecht.
Mit der For each Zelle in Selection z.B. weiss leider nicht wie ich das angehe!