VBA Bezug ändern
Betrifft: VBA Bezug ändern
von: Andi
Geschrieben am: 20.08.2014 11:37:33
Hallo,
ich habe für das Kopieren eines Musters auf Grundlage eines Musters folgenden Code hier aus dem Forum verwendet:
Sub Kundenblaetter_anlegen()
Dim rngMuster As Range, zz As Long, ss As Long
Set rngMuster = Sheets("Vorlage").Columns("A:Y")
With Sheets("Grunddaten")
For zz = 6 To .Cells(.Rows.Count, 1).End(xlUp).Row
For ss = 1 To Sheets.Count
If Sheets(ss).Name = CStr(.Cells(zz, 1)) Then
MsgBox "Blatt '" & .Cells(zz, 1) & "' bereits vorhanden.", vbInformation
Exit For
End If
Next ss
If ss > Sheets.Count Then
Worksheets.Add after:=Sheets(Sheets.Count)
rngMuster.Copy Cells(1, 1)
Cells(2, 7) = .Cells(zz, 1)
ActiveSheet.Name = CStr(Cells(2, 7))
End If
Next zz
End With
End Sub
Wie ich die Zeile der "Basis"-Liste ändern kann weiß ich jetzt, aber wie ändere ich die Spalte?
Betrifft: AW: VBA Bezug ändern
von: Arthur
Geschrieben am: 20.08.2014 12:07:56
Hallo Andi.
Cells(Zeile, Spalte)
Dies gilt für die Quelle ebenso wie für das Ziel.
Gruß, Arthur
Betrifft: AW: VBA Bezug ändern
von: Andi
Geschrieben am: 20.08.2014 12:16:55
Hallo Artur,
das funktioniert aber irgendwie nicht. Mit
For zz = 4 To .Cells(.Rows.Count, 1).End(xlUp).Row
For ss = 1 To Sheets.Count
kann ich die Werte aus der 4ten Zeile nehmen. Aber wenn ich ss = 4 schreibe, dann nimmt er sie nicht aus der 4ten Spalte, sondern bleibt in der ersten...
Betrifft: Variablenzuordnung
von: Frank
Geschrieben am: 20.08.2014 12:26:30
Hallo Andi,
laut Deinem Code steht in ss der Index des Blattes. ss=4 heisst also, dass im 4. Blatt gesucht/geschrieben werden soll.
Willst Du Werte aus der 4. Spalte muss es heissen cells(Zeile,4)
Grüsse,
Frank
Betrifft: AW: Variablenzuordnung
von: Andi
Geschrieben am: 20.08.2014 12:38:53
Vielen Dank! Jetzt habe ich es Verstanden! ;)
Betrifft: AW: Variablenzuordnung
von: Andreas
Geschrieben am: 21.08.2014 08:36:30
Noch eine Frage: Wie richte ich es ein, dass die neu generierten Blätter den Blattschutz von der Vorlage übernehmen?
Betrifft: Blatt von Vorlage
von: Frank
Geschrieben am: 21.08.2014 09:42:18
Wenn Du mit Sheets.copy arbeitest, sollte das automatisch passieren. Ansonsten wäre wohl sheets.protect /.unprotect der richtige Weg.
Grüsse,
Frank
Beiträge aus den Excel-Beispielen zum Thema "VBA Bezug ändern"