vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Excel   |   VB-Versionen: VBA05.11.04
Datenfeld in Excel-Tabelle eintragen

Mit diesem Code lässt sich schnell und komfortabel ein eindimensionales Daten-Array in ein Excel-Tabellenblatt bringen.

Autor:   Friedrich GrathBewertung:  Views:  24.818 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Mit nachfolgendem Code lässt sich schnell und komfortabel ein eindimensionales Daten-Array in ein Excel-Tabellenblatt bringen.

' DATENFELD in EXCELTABELLE eintragen
' -------------------------------------------------------------------------
' 
' Schnelles und komfortables Eintragen der Daten eines eindimensionalen
' Datenfeldes (Datenfeld(x)) in ein Excel-Tabellenblatt in horizontalel
' oder vertikaler Richtung. Die Datenanzahl ist mit 256 begrenzt.
' 
' -------------------------------------------------------------------------
' 
' Aufruf:  Call Daten_in_Tabelle(Datenfeld(), Startzelle, Tabelle, Richtung)
' 
' Datenfeld()       ---> Datenfeld(x), Datentyp Variant
' Startzelle        ---> linke Zelle bei horizontaler Datenrichtung
'                   ---> oberste Zelle bei vertikaler Datenrichtung
' Tabelle           ---> Exceltabelle, in die die Daten geschrieben werden
'               5   ---> fünftes Tabellenblatt
'    keine Angabe   ---> aktives Tabellenblatt
' Richtung      1   ---> Datenrichtung horizontal
'               0   ---> Datenrichtung vertikal
'    keine Angabe   ---> Datenrichtung vertikal
 
' Beispiele für den Aufruf:
' Call Daten_in_Tabelle(Daten(), "A1")
' Call Daten_in_Tabelle(Daten(), "C4", 2)
' Call Daten_in_Tabelle(Daten(), "B17", "Tabelle3")
' Call Daten_in_Tabelle(Daten(), "X19", "Tabelle3", 1)
' 
' -------------------------------------------------------------------------
 
Function Daten_in_Tabelle(feld(), startZelle As String, _
                         Optional Tabelle As Variant, _
                         Optional Richtung As Byte = 0)
 
  Dim Zeile  As Long     ' Startzeile
  Dim Spalte As Long     ' Startspalte
  Dim i      As Long
 
 
  On Error GoTo PROC_EXIT
  Application.ScreenUpdating = False
 
  ' wenn keine Tabellenbezeichnung, dann aktive Tabelle
  If IsMissing(Tabelle) Then Tabelle = ActiveSheet.Name
 
  Zeile = Range(startZelle).Row: Spalte = Range(startZelle).Column
 
  ' In die Tabelle eintragen
  If Richtung = 0 Then    ' vertikale Datenrichtung
    ' am Ende der Tabelle Daten horizontal eintragen
    i = Rows.Count
    With Worksheets(Tabelle).Range(Cells(i, 1), _
    Cells(i, 1 + UBound(feld) - LBound(feld)))
      .Value = feld()
      .Copy
    End With
    ' kopieren und transponieren
    With Worksheets(Tabelle).Range(Cells(Zeile, Spalte), _
    Cells(Zeile, Spalte))
      .PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=True
      .Select
    End With
    ' am Ende der Tabelle eingefügte Daten löschen
    Worksheets(Tabelle).Range(Cells(i, 1), _
    Cells(i, Spalte + UBound(feld) - LBound(feld))).ClearContents
 
  Else                    ' horizontale Datenrichtung
    With Worksheets(Tabelle).Range(Cells(Zeile, Spalte), _
    Cells(Zeile, Spalte + UBound(feld) - LBound(feld)))
      .ClearContents
      .Value = feld()
    End With
  End If
 
PROC_EXIT:
  Application.ScreenUpdating = True
  Exit Function
End Function

Aufrufbeispiel:

Sub Schnell_in_Tabelle()
  Dim datenArray(1 To 256)
 
  ' Füllen des Datenarrays
  For x = 1 To 256
    datenArray(x) = x ^ 2
  Next x
 
  ' Aufruf
  Call Daten_in_Tabelle(datenArray(), "A1", "Tabelle1", 0)
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.