Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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
Inhaltsverzeichnis

Löschen von Spalten u Setzen von SVerweis

Löschen von Spalten u Setzen von SVerweis
18.07.2014 18:35:39
Spalten
Hallo zusammen,
von fcs habe ich folgende VBA-Codes bekommen, um per Doppelklick in Spalte B (und Bestätigung) die Spalten E, F und G zu leeren und in Spalte B "frei" zu schreiben. KLappt soweit auch super!! :-)
Im Tabellenblatt:
'Code unter dem Tabellenblatt in dem die Daten eingegeben werden !!!!
'Ereignismakro - Doppelklick

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Per Doppelklick in eine Zelle in Spalte B die Zeile wieder auf "frei" setzen.
Dim Zeile As Long, Zeile_L As Long
Const Zeile_3 As Long = 2 'Nummer der 1. Zeile in die Daten eingetragen werden - ggf. _
anpassen
With Me
'Letzte Zeile mit Daten in Spalte C (Spalte mit Formeln)
Zeile_L = .Cells(.Rows.Count, 3).End(xlUp).Row
Select Case Target.Column
Case 2 'Spalte B
If Target.Row >= Zeile_1 And Target.Row 

Und das Makro:
Sub AlleArtikelNr_auf_Frei()
Dim wks As Worksheet, Zeile_L As Long
Const Zeile_3 As Long = 2 'Nummer der 1. Zeile in die Daten eingetragen werden - ggf. _
anpassen
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'Name des Tabelleblattes anpassen!!!
If MsgBox("Alle Werte in Spalte B auf ""frei"" setzen und in Spalten E,F und I löschen?", _
vbQuestion + vbOKCancel, "Werte in Tabelle """ & wks.Name & """ zurücksetzen") _
= vbCancel Then Exit Sub
With wks
'Letzte Zeile mit Daten in Spalte C (Spalte mit Formeln)
Zeile_L = .Cells(.Rows.Count, 3).End(xlUp).Row
If Zeile_L >= Zeile_1 Then
'Werte in Zellen in Spalte B auf "Frei" setzen
.Range(.Cells(Zeile_3, 2), .Cells(Zeile_L, 2)).Value = "frei"
'Werte in Zellen in Spalte E bis F löschen
.Range(.Cells(Zeile_3, 5), .Cells(Zeile_L, 6)).ClearContents
'Werte in Zellen in Spalte I löschen
.Range(.Cells(Zeile_3, 9), .Cells(Zeile_L, 9)).ClearContents
End If
Cells(Zeile_3, 2).Select
End With
End Sub
Nun möchte ich, dass Spalten C und D bei diesem Zurücksetzen automatisch den für diese Spalten normalerweise (immer drin stehenden) gültigen SVerweis (zurück)erhalten (für den Fall, dass diese SVerweise mal aus C und D rausgelöscht werden sollten, ich muss ohne Zellschutz arbeiten!).
Die erste Zeile mit SVerweis ist die 3, der erste ist für Spalte C, der zweite für Spalte D:
=WENN(ISTNV(SVERWEIS($B3;Tabelle3!A:C;2;FALSCH));"";(SVERWEIS($B3;Tabelle3!A:C;2;FALSCH)))
=WENN(ISTNV(SVERWEIS($B3;Tabelle3!A:C;3;FALSCH));"";(SVERWEIS($B3;Tabelle3!A:C;3;FALSCH)))
Ich nehme an, dass die beiden SVerweise irgendwie mit in den Code im Tabellenblatt ooer in das Makro eingebaut werden müssen....
Danke für eure Hilfe!
Gruß Holm

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen von Spalten u Setzen von SVerweis
18.07.2014 19:40:37
Spalten
Hi
formeln kannst du mit

Range(...).FormulaR1C1 = "=Formel in R1C1-Schreibweise"
in die Zellen einfügen.
die R1C1-Schreibweise hat den Vorteil, dass sie relative Zellbezüge auch relativ beschreibt und daher der Formeltext unabhängig von der Zeile ist, in welche die Formel geschrieben wird.
wie der der Formeltext in R1C1-Schreibweise aussieht, kannst du mit dem Makrorecorder rausfinden, der zeichnet normalerweise so auf.
Beachte: Anfürhungszeichen, die bestandteil der Formel sind, müssen immer doppelt angegeben werden (...;"""";... statt ...;"";...), damit der Recorder sie von den Anführungszeichen unterscheiden kann, die den String begrenzen.
Noch ein kleiner Tip: setze für die Aufzeichnung möglichst alle Zellbezüge absolut und lass nur die relativ, die unbedingt relativ sein müssen, die Formel wird dann etwas kürzer und übersichtlicher.
Gruß Daniel
Anzeige

136 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige