Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro Inhalt Zelle in anderem Sheet wiederholen
#1
Hallo Forengemeinde, :19:

ich habe eine Exceltabelle mit nachstehemdem Code, den ich nicht selber erstellt habe.
Die Exceltabelle besteht aus insgesamt 3 Arbeitsblättern.

Nun möchte ich gerne, dass der Inhalt einer Zelle auf dem ersten Arbeitsblatt mit dem Namen "Auswahl Kunde" in eine Zelle im Sheet "Zertifikat" 1:1 kopiert wird.
Die Zelle um die es geht ist Teil einer Tabelle also eine Dropdownauswahl. Titel der Tabelle "Kunde / Lieferant".

Im unten stehenden Code wurde dasselbe schon mit "Produkt" gemacht aber 
ich dachte mir ich muss einfach ein Dim rngKunde/LieferantTab as Range und die Zeile Set rngKundeTab =Sheets("Zertifikat").Range("B2").Value = Target.Value eingeben, das geht so aber leider nicht.

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Long, j As Long
  Dim rngEingabeBereich As Range
  Dim rngAusblendBereich As Range
  Dim rngProduktTab As Range
 
  Set rngEingabeBereich = Range("B6:B6")
 
  If Target.Count > 1 Then Exit Sub
  If Not Application.Intersect(Target, Range("A6:A6")) Is Nothing Then
      Application.EnableEvents = False
      Target.Offset(0, 1) = ""
      Application.EnableEvents = True
  End If
 
  If Not Application.Intersect(Target, rngEingabeBereich) Is Nothing Then
      einblenden
      Set rngAusblendBereich = Sheets("Zertifikat").Range("B6:AY6")
      Set rngProduktTab = Sheets("Produkte").ListObjects(Target.Value).DataBodyRange
      Sheets("Zertifikat").Range("B3").Value = Target.Value
     
      If Application.CountA(rngEingabeBereich) Then
        For i = 1 To rngAusblendBereich.Columns.Count
            If Application.CountIf(rngProduktTab, rngAusblendBereich.Cells(1, i)) = 0 Then rngAusblendBereich.Columns(i).Hidden = True
        Next i
      End If
  End If
End Sub


Sub einblenden()
Sheets("Zertifikat").Columns("B:AY").Hidden = False
End Sub
Antworten Top
#2
Hallöchen,

Dein Code hat aber bisschen was vom Produkte und bisschen was vom Zertifikate … Ich sehe da auch nicht, wie Du in Sheets("Produkte") was einträgst.

Im Prinzip wiederholst Du den betreffenden Codeteil, der in Produkte was einträgt.

Wenn dort z.B. vorher
Sheets("Produkte").Range("B3").Value = Target.Value
stand, sollte
Sheets("Zertifikat").Range("B3").Value = Target.Value
funktionieren.

Stand dort was anderes, solltest DU das nehmen und anpassen.


Wenn Du so was machst
Set rngKundeTab =Sheets("Zertifikat").Range("B2").Value = Target.Value
dann enthält rngKundeTab das Ergebnis vom Vergleich von ...Bt mit dem target. Das kann entweder FALSE oder TRUE sein.
Korrekt wäre z.B.
Set rngKundeTab =Sheets("Zertifikat").Range("B2").Value
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste