Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbe und Format mit VLookup?

Forumthread: Farbe und Format mit VLookup?

Farbe und Format mit VLookup?
10.03.2004 16:18:55
Selma
Hallo Ihrs,
mittels VLookup hole ich Daten aus einem anderen Workbook in das Aktuelle herein.

Set R1 = target.Range(linkRange) ' range with error-IDs
Set R2 = source.Range(linkRangeDollar) ' range with lookup tables
For i = 15 To 53
actRange = "P" + CStr(i)
If target.Range(actRange).Value = "" Then
' If actual Range (P[i]) empty then paste new value from source
target.Range(actRange) = Application.WorksheetFunction.VLookup(R1, R2, 10, 0)
Next i

Einige Zellen aus der Quelldatei haben Formatierungen wie Farbe, fett gedruckt oder Unterstreichung, etc. Kann ich mit VLookup auch diese Formatdetails kopieren? Geht das überhaupt? Oder gibt es eine Alternative?
Ich bin für jede Hilfe dankbar!
Gruß,
Selma
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe und Format mit VLookup?
10.03.2004 23:14:38
Hans W. Herber
Hallo Selma,
nein, Funktionen können keine Formate transportieren. Hier bleibt nichts anderes, als auf die Excel-Funktion zu verzichten und mit Schleifendurchläufen zu arbeiten, was die Sache nicht gerade beschleunigt.
gruss hans
Anzeige
;
Anzeige

Infobox / Tutorial

Farbe und Format mit VLookup in Excel übertragen


Schritt-für-Schritt-Anleitung

Um Daten mit VLookup zu übertragen, kannst du die folgenden Schritte befolgen:

  1. Öffne dein Excel-Dokument und stelle sicher, dass das Quell- und das Ziel-Workbook geöffnet sind.
  2. Definiere deine Bereiche:
    Set R1 = target.Range(linkRange)        ' Bereich mit Fehler-IDs
    Set R2 = source.Range(linkRangeDollar)  ' Bereich mit Lookup-Tabellen
  3. Starte die Schleife über die gewünschten Zeilen:
    For i = 15 To 53
       actRange = "P" + CStr(i)
       If target.Range(actRange).Value = "" Then
           target.Range(actRange) = Application.WorksheetFunction.VLookup(R1, R2, 10, 0)
       End If
    Next i

Beachte, dass VLookup in Excel keine Formate wie Farbe oder Schriftart überträgt. Um diese Formatierungen zu kopieren, musst du alternative Methoden verwenden.


Häufige Fehler und Lösungen

  • Fehler: Zellen werden nicht richtig formatiert.

    • Lösung: VLookup kann keine Formatierungen transportieren. Du musst die Formatierung manuell oder mit einer separaten VBA-Routine übertragen.
  • Fehler: VLookup gibt einen Fehler zurück.

    • Lösung: Prüfe, ob der Suchwert im Quellbereich vorhanden ist. Verwende die Option IFERROR, um Fehler abzufangen.

Alternative Methoden

Wenn du die Formatierungen zusammen mit den Werten übertragen möchtest, kannst du folgende Methoden in Betracht ziehen:

  1. VBA-Makros: Schreibe ein Makro, das die Werte und die Formatierungen gleichzeitig überträgt. Hier ein einfaches Beispiel:

    Dim cell As Range
    For Each cell In source.Range("A1:A10")
       If Not IsEmpty(cell) Then
           target.Range(cell.Address).Value = cell.Value
           target.Range(cell.Address).Interior.Color = cell.Interior.Color
           target.Range(cell.Address).Font.Bold = cell.Font.Bold
       End If
    Next cell
  2. Kopieren und Einfügen: Du kannst die Zellen manuell kopieren und dann mit „Inhalte einfügen“ die Formate auswählen.


Praktische Beispiele

Hier ein Beispiel, wie du die Werte mit VLookup in Excel abrufst und die Formatierung über ein Makro überträgst:

Sub TransferDataWithFormatting()
    Dim source As Workbook
    Dim target As Workbook
    Dim R1 As Range, R2 As Range
    Dim i As Integer

    Set source = Workbooks("Quelle.xlsx")
    Set target = Workbooks("Ziel.xlsx")
    Set R1 = target.Sheets("Tabelle1").Range("A1:A10")
    Set R2 = source.Sheets("Tabelle1").Range("B1:C10")

    For i = 1 To R1.Rows.Count
        If R1.Cells(i, 1).Value <> "" Then
            R1.Cells(i, 1).Value = Application.WorksheetFunction.VLookup(R1.Cells(i, 1).Value, R2, 2, False)
            R1.Cells(i, 1).Interior.Color = source.Sheets("Tabelle1").Cells(i, 1).Interior.Color
            R1.Cells(i, 1).Font.Bold = source.Sheets("Tabelle1").Cells(i, 1).Font.Bold
        End If
    Next i
End Sub

Tipps für Profis

  • Nutze Named Ranges: Damit wird die Verwaltung deiner Bereiche einfacher und verständlicher.
  • Kombiniere VLookup mit anderen Funktionen: Funktionen wie INDEX und MATCH können in bestimmten Fällen flexibler sein.
  • Optimiere deine VBA-Codes: Vermeide unnötige Berechnungen in Schleifen, um die Geschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Kann ich mit VLookup auch Zellen formatieren? Nein, VLookup selbst kann keine Formate übertragen. Du musst separate Methoden nutzen, um die Formatierungen zu übernehmen.

2. Was sind die Alternativen zu VLookup? Alternativen sind die Verwendung von INDEX und MATCH oder das Schreiben von VBA-Makros, die die benötigten Daten und Formate zusammen übertragen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige