Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

VBA Code für Zellinhalt durchstreichen wenn ...
#1
Hallo

suche für einen Freund einen VBA Code zum Reinkopieren, der folgendes machen soll:

z.B:

in B15 steht 1 und in B16 kommt durch eine Formel eine Zahl oder ein Text hinein (aus einer anderen Mappe), dann sollte die 1 in B15 durchgestrichen werden

Habe folgenden Code für eine Spalte gefunden (leider habe ich in VBA nicht die nötigen Kenntnisse um ihn abzuändern):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
Target.EntireRow.Font.Strikethrough = Target = "x"
End If
End Sub

Das Reinkopieren sollte eine einfache Handhabung sein, da die Mappen ca. alle Wochen erneuert werden (werden aus einem SAP Programm geladen)

Hoffe auf Eure Unterstützung!

Liebe Grüße Heinz

Office 2010
to top
#2
Hallo Heinz,

was meinst Du mit "hineinkopieren"?

Soll die 1 in B15 durchgestrichen werden, wenn in B16 ein Wert oder ein Text steht, oder soll B15 durchgestrichen werden, wenn dort eine 1 steht?

Beides wäre mit der Bedingten Formatierung machbar!

Vielleicht kannst Du den relevanten Tabellenblattauschnitt mal posten ...
to top
#3
Hallo Klaus,

es soll B15 durchgestrichen werden, wenn in B16 ein Wert oder Text steht.

hineinkopieren meinte ich dieses

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
Target.EntireRow.Font.Strikethrough = Target = "x"
End If
End Sub

in VBA (Alt + F11) hinter die Tabelle

Bedingte Formatierung hatte ich schon probiert und würde auch gehen, wenn es nicht zu kompliziert zum Eingeben wird. Habe leider nur eine Lösung mit einer Hilfszeile gefunden und die würde nicht in Frage kommen. Einen Code zum Hineinkopieren wäre meinerseits leichter, oder?

An einem Tabellenblattausschnitt wird gebastelt!

Liebe Grüße Heinz
to top
#4
Anhang!

Tabelle 1 simuliert Mappe 1
Tabelle 2 simuliert Mappe 2

Mitarbeiter Poldi Arbeitet auf beiden Dienststellen, nun soll die Änderung, die in Mappe 1 gemacht wird, automatisch in Mappe 2 ersichtlich sein und gleichzeitig (Wunsch des Eingeber) den obere Eintrag in der Zelle durchstreichen)

Liebe Grüße Heinz
to top
#5
Anhang


Angehängte Dateien
.xlsm   Probe DR Sv.xlsm (Größe: 17,44 KB / Downloads: 9)
to top
#6
Hallo Heinz,

hab mir Deine Mappe angeschaut, aber ich blicke nicht durch, was wann wo passieren soll (kann natürlich auch sein, dass ich neben der Leitung stehe).

Kannst Du nochmal erklären, wo welche Eingaben gemacht werden und was die dann bewirken sollen?

Ausserdem schreibst Du

Zitat:Tabelle 1 simuliert Mappe 1
Tabelle 2 simuliert Mappe 2

Daraus schliesse ich, dass die Daten in zwei Arbeitsmappen (Dateien) liegen?
to top
#7
Hallo Klaus,

in Mappe 1 werden die Daten von Zeile 15 und 16 von Poldi eingetragen und die Daten von Zeile 15 und 16 "nur von Poldi" sollen sich in Mappe 2 wiederspiegeln. Man möchte sich die zweifache Verbuchung (auch Fehlbuchungen) ersparen.

Wenn ein Eintrag in Zeile 16 Spalte B bis AF (Mappe 1) getätigt wird, soll sich das in Mappe 2 wiederspiegeln und gleichzeitig in Mappe 2 die Zelle (B15:AF15) oberhalb durchstreichen.
Das mit der Verknüpfung der beiden Mappen ist mir klar > wurde auch bewusst nicht so hochgeladen, da es sicher mit der Verknüpfung Probleme gegeben hätte.
Es geht rein um das Durchstreichen in Mappe 2. Mit der bedingten Formatierung funktioniert das bei Mappe 2 ja schon, nur er möchte es mit VBA gelöst haben.

Ja die beiden Mappen liegen in einem Ordner > wegen der Verknüpfung.

Liebe Grüße Heinz

PS: Danke für Deine Bemühungen!
to top
#8
Hallo Heinz,

teste mal das:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Range("B15:AF16")) Is Nothing Then
    With Worksheets("Tabelle2").Range(Target.Address(0, 0))
      .Value=Target.Value
      .Font.Strikethrough = (Target.Row = 15)
    End With
  End If
End Sub

Gruß Uwe
to top
#9
Hallo Uwe,

danke für deinen Vorschlag, doch ich "sehe" nicht was es macht, bzw. es macht nicht was ich will.

Habe es in die Hinter die Tabelle 2 (es soll auch nur hier wirken) eingefügt, aber ich sehe keine Wirkung!

Liebe Grüße Heinz
to top
#10
Hallo Heinz,

es sollen doch Eingaben in Tabelle1 die Ansicht in Tabelle2 steuern!?
Also gehört der Code in das VBA-Modul Tabelle1. ;-)

Gruß Uwe
to top


Gehe zu:


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