Clever-Excel-Forum

Normale Version: Vlookup Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
  • Bereich markieren
  • Format
  • Ausrichtung
  • Horizontal
  • Über Auswahl zentrieren

Gruß Ralf
Hallo Ralf,


das funktioniert zwar, der Inhalt wird horizontal verteilt über alle Zellen gezeigt, allerdings ist jetzt mein Dropdown(Datenüberprüfung) mitten zwischen den Zellen ::(

Gibt es noch andere Ideen?


Vielen Dank
VG
Alexandra
Hallo Alexandra,

so geht es bei mir auch mit Entfernen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
If Target.Cells(1).MergeArea.Address = "$A$18:$F$18" Then
  Set Bereich = Tabelle4.Range("A2:E3")
  On Error Resume Next
  Application.EnableEvents = False
  Me.Cells(19, 1).Value = Application.VLookup(Target.Value, Bereich, 2, False)
  If Application.IsNA(Me.Cells(19, 1).Value) Then
    Me.Cells(19, 1) = ""
    Me.Cells(20, 1) = ""
    Me.Cells(22, 1) = ""
    Me.Cells(27, 1) = ""
  Else
    Me.Cells(20, 1).Value = Application.VLookup(Target.Value, Bereich, 3, False)
    Me.Cells(22, 1).Value = Application.VLookup(Target.Value, Bereich, 4, False) & " " & Application.VLookup(Target.Value, Bereich, 5, False)
    'Me.Cells(23, 1).Value = Application.VLookup(Target.Value, Bereich, 5, False)
    Me.Cells(27, 1).Value = Application.VLookup(Target.Value, Bereich, 5, False)
  End If
  Application.EnableEvents = True
  On Error GoTo 0
End If
End Sub
Gruß Uwe
Warum keine Beispieldatei hochgeladen ?

Du brauchst 'merged cells' gar nicht, vermute ich.
Und vlookup in VBA ????
(14.06.2017, 14:56)cysu11 schrieb: [ -> ]Hallo Uwe und Hallo Atilla,


nun habe ich nach langer Probiererei endlich die Ursache gefunden :), aber noch keine Lösung.
Das Zelle A18 ist eine verbundene Zelle bis Spalte F. Wenn ich die Verbindung aufhebe dann klappt es wunderbar aber wenn ich die Zellen wieder verbinde, dann geht es

Hallo Alexandra,

dann hast Du meinen Vorschlag nicht getestet, denn der arbeitet auch bei verbundenen Zellen.


Meinen Variante würde ich um eine MasgBox erweitern:

Code:
If Target.CountLarge = 1 Then
 If Target.Address(0, 0) = "A18" Then
 On Error GoTo fehler
 Application.EnableEvents = False
   Range("A19:A22") = ""
   Range("A27") = ""
   x = Application.Match(Target, namensBereich, 0)
   If IsNumeric(x) Then
     With Tabelle4
       Cells(19, 1) = .Cells(x + 1, 2)
       Cells(20, 1) = .Cells(x + 1, 3)
       Cells(22, 1) = .Cells(x + 1, 4) & " " & .Cells(x + 1, 5)
       Cells(27, 1) = .Cells(x + 1, 5)
     End With
   Else
     MsgBox "Dieser Name existoiert nicht in der Namensliste!"
   End If
 End If
End If

fehler:
 Application.EnableEvents = True
 If Err Then MsgBox "Fehler: " & Err.Number & vbLf & vbLf & Err.Description

End Sub
(14.06.2017, 16:22)snb schrieb: [ -> ]Du brauchst 'merged cells' gar nicht, vermute ich.

Richtig, so geht es z.B. auch:
 If Target.Cells(1).Address = "$A$18" Then
(14.06.2017, 17:58)atilla schrieb: [ -> ]Hallo Alexandra,

dann hast Du meinen Vorschlag nicht getestet, denn der arbeitet auch bei verbundenen Zellen.


Meinen Variante würde ich um eine MasgBox erweitern:

Code:
If Target.CountLarge = 1 Then
 If Target.Address(0, 0) = "A18" Then
 On Error GoTo fehler
 Application.EnableEvents = False
   Range("A19:A22") = ""
   Range("A27") = ""
   x = Application.Match(Target, namensBereich, 0)
   If IsNumeric(x) Then
     With Tabelle4
       Cells(19, 1) = .Cells(x + 1, 2)
       Cells(20, 1) = .Cells(x + 1, 3)
       Cells(22, 1) = .Cells(x + 1, 4) & " " & .Cells(x + 1, 5)
       Cells(27, 1) = .Cells(x + 1, 5)
     End With
   Else
     MsgBox "Dieser Name existoiert nicht in der Namensliste!"
   End If
 End If
End If

fehler:
 Application.EnableEvents = True
 If Err Then MsgBox "Fehler: " & Err.Number & vbLf & vbLf & Err.Description

End Sub

Hallo Atilla,

selbstverständlich habe ich auch dein Vorschlag getestet mit dem gleichen Ergebniss, aber siehe selbst! :)

[
Dateiupload bitte im Forum! So geht es: Klick mich!
]



Vielen Dank
VG
Alexandra
(14.06.2017, 18:29)Kuwer schrieb: [ -> ]Richtig, so geht es z.B. auch:
 If Target.Cells(1).Address = "$A$18" Then

Hlalo Uwe,


nun funktioniert es, woran hat es gelegen? :)


Vielen Dank
VG
Alexandra
Hallo Alexandra,

(14.06.2017, 19:32)cysu11 schrieb: [ -> ]nun funktioniert es, woran hat es gelegen? :)

weil ein Zellverbund eine andere Adresse (zumindest beim Leeren) zurückgibt. Fragt man aber die erste Zelle ( .Cells(1) ) ab, ist die Adresse immer gleich, egal ob es sich um einen Zellverbund oder nur eine Zelle handelt.

Gruß Uwe
Hallo Uwe,


Thumps_up danke für die Hilfe und für die Erklärung! :)


Viele Grüße
Alexandra
Seiten: 1 2 3