online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon rolandaa vom 14.06.2021, 01:36 Options

mehrere werte mit vba aus zellen einlesen und ausgeben

hallo zusammen,
habe folgendes problem:

gibt es eine möglichkeit in vba mehrere zellen in eine variable hintereinander einzulesen und anschließend in der selben reihenfolge auf ein anderes tabellenblatt wieder auszugeben.

ähnlich dem einlesen eines listenfeldes, also nicht für jede variabel eine eigen deklaration.

in etwa so:

sub test()
dim merk as string

merk = range("A1").value und range("A2").value und range("A3").value ...

tabelle("T2").select
range("B1").value = merk??
range("B2").value = merk??
range("B3").value = merk??
...
end sub

wenn möglich für ca. 50 datensätze

geht das?
danke im voraus
rolandaa


Antwort schreiben

Antwort 1 von Marie vom 14.06.2021, 03:59 Options

Sub Array_Beispiel()
    Dim Arr()
    For x = 1 To 50
        ReDim Preserve Arr(x)
        Sheets("Tabelle2").Range("B" & x) = Sheets("Tabelle3").Range("A" & x)
    Next x
End Sub


ich habe oben den Inhalt von Tabelle 3 Spalte A in Tabelle 2 Spalte B kopiert.

Gruß marie

Antwort 2 von nighty vom 14.06.2021, 10:07 Options

hi ihr huebschen .-))

dann mal einige beispiele,die spielraum fuer experimente geben

gruss nighty

p.s.
bin noch krank,darum selten present :-(


Sub Suchen()
    Dim Azeile As Long, Ezeile As Long, Zaehler1 As Long, Zaehler2 As Long
    Dim Lager As Variant
    Azeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Ezeile = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
    ReDim ArrA(Azeile, 1) As Variant
    ReDim ArrC(Azeile, 1) As Variant
    ReDim ArrE(Ezeile, 1) As Variant
    ArrA() = Range("A1:A" & Azeile)
    ArrC() = Range("C1:C" & Azeile)
    ArrE() = Range("E1:E" & Ezeile)
    For Zaehler1 = 2 To Ezeile
        Lager = Split(ArrE(Zaehler1, 1), "-")
        For Zaehler2 = 2 To Azeile
            If UCase(RTrim(Lager(0))) = UCase(ArrA(Zaehler2, 1)) Then
                ArrC(Zaehler2, 1) = Lager(1)
                Exit For
            End If
        Next Zaehler2
    Next Zaehler1
    ActiveSheet.Range("C1:C" & Azeile) = ArrC()
End Sub

Sub Seperate()
    Dim TbSpAZeile As Long
    TbSpAZeile = Cells(Rows.Count, 1).End(xlUp).Row
    ReDim TbSpaA(1 To TbSpAZeile, 1 To 1) As Variant
    TbSpaA(2, 1) = "Es geht jetzt"
    Range("A1:A4").Resize(UBound(TbSpaA())) = TbSpaA()
End Sub

Sub Drehen()
    ReDim intArray(3, 1) As Variant
    intArray() = Range("A1:C3")
    Dim vntArray As Variant
    vntArray = Application.Transpose(intArray)
    Range("A5:A7") = vntArray
End Sub


beachte in dem zusammenhang noch redim preserv

Antwort 3 von nighty vom 14.06.2021, 10:18 Options

hi ihr huebschen :-)

hier ein beispiel fuer euch w,as so glaube ich leicht verstaendlich ist :-))

gruss nighty

Option Explicit
Sub MakroFunktioniert()
    Dim Wks1SpAZeile As Long 'deklarierung
    Wks1SpAZeile = Cells(Rows.Count, 1).End(xlUp).Row 'ermittlung der letzten zeile von spalte a
    ReDim TbSpaA(Wks1SpAZeile, 1) As Variant 'deklarierung
    TbSpaA() = Range("A1:A" & Wks1SpAZeile) ' araay nimmt angegebene zellen auf
    'mache irgendwas mit dem array
    Range("A1:A" & Wks1SpAZeile) = TbSpaA() ' array wird zurueckgeschrieben
End Sub

Antwort 4 von nighty vom 14.06.2021, 10:34 Options

hi marie :-))

hab dein makro ein wenig veraendert,ohne schleife :-))

gruss nighty

Sub Marie()
    Worksheets("Tabelle1").Activate
    ReDim TbSpaA(50, 1) As Variant
    TbSpaA() = Range("A1:A50")
    Worksheets("Tabelle2").Activate
    Range("A1:A50") = TbSpaA()
End Sub


bei dieser syntax tritt einer der wenigen faelle ein wo select bzw activate gesetzt werden muss

Antwort 5 von rolandaa vom 14.06.2021, 13:22 Options

ja hallo,

da hab ich jetzt einiges zum testen :-)

vielen dank, ich bin überwältigt.

mfg
rolandaa

Ähnliche Themen

Makro zum anfügen einer 0 vor Werte/Zellen
neop  17.12.2007 - 84 Hits - 4 Antworten

Excel VBA Werte trennen
Mona2008  21.01.2008 - 12 Hits - 3 Antworten

Werte einer spalte per VBA addieren
nok106  27.08.2008 - 21 Hits - 4 Antworten

VBA EXCEL - Zellinhalt formatieren und ausgeben
derby  27.05.2009 - 427 Hits - 2 Antworten

Makro: Kopierte Zellen als Werte einfügen
Stfansosl  05.06.2009 - 209 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026