Der Befehl `QuellBlatt1.Rows(2).Copy` in VBA (Visual Basic for Applications) bedeutet, dass die **zweite Zeile** (Row 2) des Arbeitsblatts mit dem Namen oder Objektverweis `QuellBlatt1` **kopiert** wi... [mehr]
Hier ist die überarbeitete Version des Makros, die **jeden Mitarbeiter** aus dem Bereich C9:C66 der Quell-Tabelle ("Personen einzelnd drucken") in die Ziel-Tabelle ("Arbeitsplan") überträgt – unabhängig davon, ob der Name bereits in der Ziel-Tabelle steht. Für jeden gefundenen Namen wird die entsprechende Zeile im "Arbeitsplan" gesucht und die Werte werden übertragen. Falls der Name nicht gefunden wird, wird er übersprungen. ```vba Sub uebertragAllePersonen() Dim wb As Workbook Dim wsQuell As Worksheet, wsZiel As Worksheet Dim datumToFind As Variant, rGef As Range Dim nameQuell As Variant Dim zielStartCol As Long, zielCol As Long, quelleCol As Long Dim i As Long, j As Long Dim nameGefunden As Boolean Set wb = ThisWorkbook Set wsQuell = wb.Sheets("Personen einzelnd drucken") Set wsZiel = wb.Sheets("Arbeitsplan") ' Datum aus Spalte B8 der Quell-Tabelle als Zahl If IsDate(wsQuell.Range("B8").Value) Then datumToFind = CLng(wsQuell.Range("B8").Value) Else MsgBox "Datum in Personen einzeln drucken!B8 ist ungültig oder leer.", vbExclamation Exit Sub End If zielStartCol = 4 ' Spalte D ' Jetzt alle Namen in C9:C66 durchgehen For i = 9 To 66 nameQuell = wsQuell.Cells(i, 3).Value ' Spalte C If Not IsEmpty(nameQuell) Then nameGefunden = False ' In Arbeitsplan Spalte A nach Datum suchen For Each rGef In wsZiel.Columns("A").Cells If IsDate(rGef.Value) Then If CLng(rGef.Value) = datumToFind Then ' Prüfen, ob Name in Spalte B übereinstimmt If wsZiel.Cells(rGef.Row, "B").Value = nameQuell Then ' Kopiere Werte von Arbeitsplan F bis BA in die Zielspalten ab Spalte D der aktuellen Zeile For zielCol = 6 To 54 ' F(6) bis BA(54) wsQuell.Cells(i, zielStartCol + (zielCol - 6)).Value = wsZiel.Cells(rGef.Row, zielCol).Value Next zielCol nameGefunden = True Exit For End If End If End If If rGef.Row > 1000 Then Exit For ' Optional: Suchbereich begrenzen Next rGef ' Optional: Hinweis, wenn Name nicht gefunden wurde 'If Not nameGefunden Then ' wsQuell.Cells(i, zielStartCol).Value = "Name nicht gefunden" 'End If End If Next i MsgBox "Datenübertragung abgeschlossen.", vbInformation End Sub ``` **Hinweise:** - Das Makro sucht für **jeden** Namen aus C9:C66 das passende Datum und den Namen in der Ziel-Tabelle und überträgt die Werte. - Falls ein Name nicht gefunden wird, passiert nichts (optional kann ein Hinweis in die Quell-Tabelle geschrieben werden, siehe Kommentar). - Die Übertragung erfolgt immer in die Zeile des jeweiligen Mitarbeiters in der Quell-Tabelle. Falls du möchtest, dass auch neue Mitarbeiter in die Ziel-Tabelle eingefügt werden, müsste das Makro entsprechend erweitert werden.
Der Befehl `QuellBlatt1.Rows(2).Copy` in VBA (Visual Basic for Applications) bedeutet, dass die **zweite Zeile** (Row 2) des Arbeitsblatts mit dem Namen oder Objektverweis `QuellBlatt1` **kopiert** wi... [mehr]
In Excel VBA kannst du den Typ eines Tabellenblatts (ob es sich um ein Arbeitsblatt oder ein Diagrammblatt handelt) mit der Type-Eigenschaft des jeweiligen Objekts ermitteln. Hier ein Beispiel: ```vb... [mehr]
Um in Excel mit VBA eine E-Mail zu erstellen, bei der der Empfänger im BCC steht, kannst du folgenden Code verwenden: ```vba Sub SendEmailWithBCC() Dim OutlookApp As Object Dim OutlookMa... [mehr]
Die Methode `oPPT.Presentations.Open(sFile)` stammt aus der Automatisierung von Microsoft PowerPoint mit VBA (Visual Basic for Applications) oder anderen Programmiersprachen, die COM-Automatisierung u... [mehr]
Um mit VBA den Wert einer Zelle, der ein definierter Name zugewiesen wurde, in eine Zelle eines anderen Arbeitsblatts zu kopieren, kannst du folgenden Code verwenden: ```vba Sub WertKopieren() ... [mehr]
In VBA kannst du einen Wert, den dein Makro zuvor ermittelt hat, mit der Funktion `MsgBox` anzeigen. Beispiel: ```vba Dim ermittelterWert As Double ermittelterWert = Worksheets("Tabelle1").... [mehr]
In Microsoft Access (VBA) gibt es keine direkte Methode wie `Application.ScreenUpdating = False` (wie in Excel), um den Bildschirm während der Ausführung von Code "einzufrieren". D... [mehr]
Um aus einer Access-Anwendung per VBA eine andere Access-Anwendung zu öffnen, kannst du das **CreateObject**-Kommando verwenden und die gewünschte Datenbank mit der **OpenCurrentDatabase**-M... [mehr]
Um mehrere Excel-Dateien aus einem Ordner mit xlwings zusammenzuführen, kannst du folgendes Python-S verwenden. Dieses Skript öffnet alle Excel-Dateien in einem angegebenen Ordner und fü... [mehr]
Um mehrere Spalten aus verschiedenen Excel-Dateien mit xlwings zusammenzuführen, kannst du die folgenden Schritte befolgen: 1. **Installation von xlwings**: Stelle sicher, dass xlwings installie... [mehr]