Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1252to1256
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

Zellenbereich als Variable

Zellenbereich als Variable
Universal
Hallo Leute,
irgendwie schaffe ich es nicht meine Frage in eine vernünftige Suche "umzuwandeln" - ich bekomme zwar überall Ergebnisse, aber ich kann sie entweder nicht auf meinen Fall anwenden oder sie beziehen sich auf etwas anderes.
Mein Problem: Ich würde gern einen Zellbereich einer Tabelle als Variable definieren, so dass ich zu jederzeit darauf zugreifen kann.
Grund: Ich habe eine Arbeitsmappe mit sehr viellen Tabellenblättern und verschiedenen Arten von Tabellenköpfen. Diese Köpfe würde ich gern als Variable deklarieren. Anschließend muss ich neue Tabellenblätter erstellen, wo ich auf diese Variable wieder zugreifen muss.
Mein Beispiel-Code:

Sub Tabellenkopf()
Dim Kopf1 As ... 'ich weiß es nicht
Dim Kopf2 As ...
With ActiveWorkbook
Kopf1 = .Sheets(1).Range("A1:E5")
Kopf2 = .Sheets(2).Range("A1:G8")
End With
... 'weiterer Code
With newWB
.Sheets(1).Range("A1:E5") = Kopf1
.Sheets(2).Range("A1:G8") = Kopf2
end with
End Sub

Die Tabellenkopfe sollten inklusive der Formatierung kopiert bzw. definiert werden.
Ist es möglich so eine Variable zu erstellen?
Vielen Dank für eure Hilfe und einen schönen Restsonntag noch!
Uni

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellenbereich als Variable
18.03.2012 21:13:38
Josef

Hallo Uni,
Sub Tabellenkopf()
  Dim Kopf1 As Range, Kopf2 As Range
  
  With ActiveWorkbook
    Set Kopf1 = .Sheets(1).Range("A1:E5")
    Set Kopf2 = .Sheets(2).Range("A1:G8")
  End With
  
  '... 'weiterer Code
  
  With newWB
    .Sheets(1).Range(Kopf1.Address) = Kopf1.Value
    .Sheets(2).Range(Kopf2.Address) = Kopf2.Value
  End With
  
  
  Set Kopf1 = Nothing
  Set Kopf2 = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Zellenbereich als Variable
18.03.2012 21:28:57
Universal
Hi Josef,
vielen Dank für die schnelle Antwort. Habe es gleich mal ausprobiert. Im Prinzip funktioniert der Code, jedoch werden jegliche Formatierungen nicht mit kopiert (Fett, Schriftart, Farbe usw.).
Ist dies möglich mit zu übergeben?
Vielen Dank und viele Grüße
Uni
AW: Zellenbereich als Variable
18.03.2012 21:46:44
Josef

Hallo Uni,
dann halt so.
Sub Tabellenkopf()
  Dim Kopf1 As Range, Kopf2 As Range
  
  With ActiveWorkbook
    Set Kopf1 = .Sheets(1).Range("A1:E5")
    Set Kopf2 = .Sheets(2).Range("A1:G8")
  End With
  
  '... 'weiterer Code
  
  With newWB
    Kopf1.Copy
    With .Sheets(1).Range(Kopf1.Address)
      .PasteSpecial -4104
      .PasteSpecial 8
    End With
    Kopf2.Copy
    With .Sheets(2).Range(Kopf2.Address)
      .PasteSpecial -4104
      .PasteSpecial 8
    End With
  End With
  
  Application.CutCopyMode = False
  
  Set Kopf1 = Nothing
  Set Kopf2 = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Zellenbereich als Variable
18.03.2012 21:55:20
Universal
Hi Josef,
oh je, da wär ich so nie drauf gekommen ... vielen Dank - jetzt passt es!!!
viele Grüße
Uni
Im GgSatz zu Sepp würde ich das etwas ...
18.03.2012 21:22:09
Luc:-?
…universeller gestalten, Uni!
Vergib für die Bereiche der Köpfe Namen, schreibe diese Namen als Konstantenwerte in dein VBProjekt und verwende dann im Projekt die Konstanten-Namen statt der Direktangabe der Adressen in Range, also bspw Const bnAlfa$ = "Kopf1" und dann Range(bnAlfa) für den Bsp-Namensbezug Kopf1 =Tabelle1!A1:J5.
Gruß Luc :-?

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige