Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
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

Werte per VBA in andere Tabelle kopieren

Werte per VBA in andere Tabelle kopieren
16.12.2020 17:07:41
Thomas
Liebe Herber-Forum-Gemeinde,
ich wäre euch sehr dankbar, wenn ihr mir (VBA-Newbie) mit folgendem VBA-Code/Problem helfen könntet.
Das Forum habe ich bereits durchsucht, leider habe ich (noch) nicht die passende Antwort für dieses spezifische Problem gefunden.
Ich möchte monatlich Werte (ganze Zahlen) von einem vorgefertigten Tabellenblatt in eine fortlaufende Planung (separates Tabellenblatt) per Makro übertragen. Das Makro soll sozusagen anhand zweier Kriterien in Tabellenblatt B (bspw. Kennzahl (Zeile) & Monat (Spalte) die richtige Zelle in Tabellenblatt A suchen und den in Tabellenblatt B hinterlegten Wert für diese Kombi in diese Zelle (per Knopfdruck) kopieren.
Eine Formellösung, welche einfach wäre, scheidet aus diversen Gründen aus.
In angehängter Datei habe ich die Problemstellung in vereinfachter Form hinterlegt:
https://www.herber.de/bbs/user/142374.xlsx
Für eure Hilfe bedanke ich mich recht herzlich im Voraus.
Viele Grüße
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte per VBA in andere Tabelle kopieren
16.12.2020 17:12:09
Hajo_Zi
Hallo Thomas,
benutze den MNakrorecorder.
ich kann Dir Leider nicht helfen, da bei mir eine XLSX Datei kein Makro enthält. Mein Makro ist also niucht da.
Da ich nicht für den Papierkorb arbeite bin ich raus.
Vierl Erfolg noch.
Gruß Hajo
AW: Werte per VBA in andere Tabelle kopieren
16.12.2020 18:01:07
Nepumuk
Hallo Thomas,
teste mal:
Option Explicit

Public Sub CopyValues()
    
    Dim avntValues As Variant
    Dim strMonth As String
    Dim lngMonthColumn As Long, ialngIndex As Long
    Dim objCell As Range
    
    strMonth = Trim$(Worksheets("Quelle - IST-Zahlen").Cells(1, 2).Text)
    
    If strMonth <> vbNullString Then
        
        With Worksheets("Zieltabelle")
            
            Set objCell = .Rows(3).Find(What:=strMonth, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
            
            If objCell Is Nothing Then
                Call MsgBox("Monat nicht gefunden.", vbCritical, "Programmabbruch")
                Exit Sub
            Else
                lngMonthColumn = objCell.Column
                Set objCell = Nothing
            End If
            
            avntValues = .Range(.Cells(4, 2), .Cells(.Rows.Count, 2).End(xlUp)).Value2
            
        End With
        
        With Worksheets("Quelle - IST-Zahlen")
            
            For ialngIndex = LBound(avntValues, 1) To UBound(avntValues, 1)
                
                Set objCell = .Range(.Cells(4, 2), .Cells(.Rows.Count, 2)).Find( _
                    What:=avntValues(ialngIndex, 1), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
                
                If Not objCell Is Nothing Then _
                    Worksheets("Zieltabelle").Cells(ialngIndex + 3, lngMonthColumn).Value = objCell.Offset(0, 1).Value
                
            Next
            
            Set objCell = Nothing
            
        End With
    Else
        Call MsgBox("Kein Monat ausgewählt.", vbCritical, "Programmabbruch")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte per VBA in andere Tabelle kopieren
16.12.2020 18:13:59
Thomas
Hallo Nepumuk,
genau das was ich gesucht habe, perfekt.
Vielen herzlichen Dank für deine schnelle Hilfe!
Viele Grüße
Thomas

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige