Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA - nur Wert kopieren - Codeanpassung
07.11.2019 07:47:58
Markus
Guten Morgen zusammen,
ich versuche jetzt verzweifelt seit 2 Tagen den VBA-Code zum laufen zu bringen, leider ohne Erfolg, da ich bisher keinerlei VBA/Makro Erfahrung habe. Der Code ist von einer HP und funktioniert eigentlich super, bis auf das die komplette Zelle inkl. Formel kopiert wird und nicht wie gewünscht nur der Wert ohne Formel.
Es wäre super wenn mir hier jemand weiter helfen könnte, sodass der Wert aus Spalte C in "Row 2" als B kopiert wird, also nur die "Seriennummer" ohne Formel.

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xCell As Range
Dim xDCell As Range
Dim xHeader As String
Dim xCommText As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Previous value :"
x = xDic.Keys
For I = 0 To UBound(xDic.Keys)
Set xCell = Range(xDic.Keys(I))
Set xDCell = Cells(xCell.Row, 2)
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I, J As Long
Dim xRgArea As Range
On Error GoTo Label1
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set xDependRg = Target.Dependents
If xDependRg Is Nothing Then GoTo Label1
If Not xDependRg Is Nothing Then
Set xDependRg = Intersect(xDependRg, Range("C:C"))
End If
Label1:
Set xRg = Intersect(Target, Range("C:C"))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
Set xChangeRg = xRg
Else
Application.EnableEvents = True
Exit Sub
End If
xDic.RemoveAll
For I = 1 To xChangeRg.Areas.Count
Set xRgArea = xChangeRg.Areas(I)
For J = 1 To xRgArea.Count
xDic.Add xRgArea(J).Address, xRgArea(J).Formula
Next
Next
Set xChangeRg = Nothing
Set xRg = Nothing
Set xDependRg = Nothing
Application.EnableEvents = True
End Sub


https://www.herber.de/bbs/user/132989.xlsm
Über den Link solltet ihr zu Datei gelangen. Ich denke das ist für euch kein Thema, aber ich verzweifel hier solangam.
Besten Dank für eure Unterstütztung!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 13:11:44
EtoPHG
Hallo Markus,
Woher hast du diesen wirren Code?
Was soll damit überhaupt erreicht werden?
Kannst Du mal erläutern, was denn dein Ziel ist (offensichtlich irgendwo in Spalte B beim entsprechenden Eintrag setzen, wenn das 'Gerät' geprüft wurde?)?
Aufgrund welcher Bentutzeraktion, soll die Spalte besetzt werden?
Wäre es nicht besser das Datum der Prüfung einzutrage, anstatt nochmals die gleiche Nummer wie in A?
Gruess Hansueli
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 13:22:40
Werner
Hallo Markus,
das sage ich nur häähhh?
Welcher Wert aus C2? In beiden Tabellenblätter gibt es keinen Wert in C2.
Vielleicht erklärst du mal in einfachen Worten, was der Code denn eigentlich machen sollte.
Gruß Werner
Anzeige
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 15:29:00
Markus
Hallo zusammen,
der Code ist von u.s. Website. Ich versteh offen gesagt nicht wirklich was hier passiert, aber zumindest hab ich es für meine Bedürfnisse fast zum laufen gebracht.
https://www.extendoffice.com/de/documents/excel/5056-excel-remember-save-previous-cell-value.html
Ich möchte per Barcodescanner in Zelle "F1" eine Seriennummer einlesen. Diese wird in "E2" per Sverweis geprüft - ob in der Gesamtliste vorhanden. Hier von A5-A19. In C5-C19 Frage ich über "Wenn" ab ob der Wert von E2, also die gesuchte Seriennummer mit dem Wer in A5-A19 übereinstimmt. Von C5-C19 möcht ich nun den Wert in Spalte B5-B19 übertragen - nicht die In C hinterlegte Formel.
In der Originaltabelle will ich ca. 3000 Werte nacheinander einscannen und in Spalte B kopiert haben. Mit der Formel funktioniert das leider nicht, da beim nächsten Scannen der letze Wert natürlich verloren geht und immer nur der aktuelle übertragen bzw. eingetragen wird.
Eigentlich wäre es auch sinnvoll das Datum und die Uhrzeit zu hinterlegen in Spalte B. Allerdings bekomme ich das mit VBA erst recht nicht hin.
Das wäre die Optimallösung wenn ich genauer darüber nachdenke.
Ich hoffe Ihr versteht soweit was ich meine und könnt mir hier weiter helfen.
Besten Dank schon mal für eure Hilfe! Ich wäre ohne solche tollen Foren hoffnungslos aufgeschmissen :-)
Anzeige
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 16:04:54
Werner
Hallo Markus,
meinst du so?
Teste mal.
Was du mit
mel funktioniert das leider nicht, da beim nächsten Scannen der letze Wert natürlich verloren geht und immer nur der aktuelle übertragen bzw. eingetragen wird.
meinst, ist mir nicht wirklich klar.
Die ganzen Formeln habe ich gelöscht.
https://www.herber.de/bbs/user/133003.xlsm
Gruß Werner
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 17:33:51
Markus
Hallo Werner,
vielen Dank für deine Hilfe. Die Tabelle funktioniert so super! Genau so habe ich mir das vorgestellt. Gerade noch die Uhrzeit eingefügt... das hat mit biegen und brechen noch so hingehauen :)
Auch der Code vom Forenkollegen Hansueli hat mir weitergeholfen. Durch eure Unterstützung bzw. eure doch wesentlich einfachen Codes, verstehe ich wenigstens ein bisschen wies funktioniert. Auch wenn ich das selbst auf die schnelle niemals hinbekommen hätte.
Zum Thema mit der Formel. Die Formel zeigt mir leider nur die "aktuell" eingelesene Seriennummer an. Sobald ich die Nächste abscanne, verschwindet dies wieder und die dann "aktuelle" wird angezeigt. Will heißen, mit den Formeln hab ich es einfach nicht hinbekommen das sich die Tabelle mit der Zeit "füllt". Hoffe das jetzt einigermaßen rüber gebracht bekommen zu haben :)
An dieser Stelle nochmals vielen Dank für deine Zeit und Mühe! Super das es noch so hilfsbereite Menschen gibt.
Grüße Markus
Anzeige
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 17:40:41
Werner
Hallo,
ich weiß ja nicht wie du die Uhrzeit mit eingebaut hast, aber das ist ganz einfach
raFund.Offset(, 2) = Now
Gruß Werner
AW: VBA - nur Wert kopieren - Codeanpassung
07.11.2019 17:47:13
Markus
Hallo Werner,
oh, das scheint mir die einfachere Lösung zu sein. Ich hab es folgendermaßen zusammengewurstelt.
raFund.Offset(, 2) = CDate(Format(Now, "yy-mm-dd hh:mm:ss"))
Ich denke aber ich werde deine Lösung übernehmen. Der Code ist einfach Einfacher!
(Wollte jetzt nicht noch wegen so einer Lapalie nachfragen...)
Nochmals Danke für die Unterstützung.
Grüße Markus
Anzeige
Gerne. o.w.T.
07.11.2019 18:01:30
Werner
So ein Vorschlag
07.11.2019 16:17:41
EtoPHG
Hallo,
Nur diesen Code in das Tabellenblatt (keinen anderen!)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lX As Long
On Error Resume Next
If Target.Address = "$F$1" Then
lX = WorksheetFunction.Match(Target, Range(Cells(5, 1), Cells(Rows.Count, 1).End(xlUp)), _
0)
If Err.Number = 0 Then
If IsEmpty(Cells(lX + 4, 2)) Then
Cells(lX + 4, 2) = Now
Else
If vbYes = MsgBox("Alter Prüftermin " & Cells(lX + 4, 2).Text & " überschreiben? _
", _
vbYesNo + vbExclamation) Then
Cells(lX + 4, 2) = Now
End If
End If
Else
MsgBox Target & " NICHT VORHANDEN!", vbExclamation
Err.Clear
End If
End If
End Sub
Gruess Hansueli
Anzeige
AW: So ein Vorschlag
07.11.2019 17:28:23
Markus
Hallo Hansueli,
vielen Dank für deine Hilfe!
Der Code klappt super und hier verstehe ich auch fast wie es funktioniert. Allerdings wäre das für mich nicht machbar gewesen. Allerdings glaube ich, dass ich mich in Zukunft mit dem Thema VBA auseinander setzen sollte. Eine Hilfreiche Angelegenheit. Super das es noch so Hilfsbereite Menschen gibt :)
Auch der Code vom Forenkollege Werne funktioner. Ich denke ich werde mal aus beiden das Beste zusammen basteln und hoffen das die Tabelle dann auch Idiotensicher ist.
Nochmals vielen Dank für die schnelle und astreine Hilfe.
Grüße Markus
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
07.11.2019 17:31:53
Werner

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige