Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1576to1580
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

Zellen vor Überschreibung durch makro schützen

Zellen vor Überschreibung durch makro schützen
11.09.2017 13:05:10
Chris
Hallo zusammen,
ich habe ein Makro erstellt, dass mittels Sverweis die Daten in allen Zeilen der Spalte C aus einer anderen Datei aktualisiert. Suchkriterium befindet sich jeweils in Spalte A.
Nun gibt es einige Zellen zum Beispiel C5, in der ein Text stehen soll, der sich nicht in der anderen Datei befindet.
Habe ich die Möglichkeit den Text einzutragen und so zu schützen, dass er von meinem Makro nicht überschrieben wird?
Derzeit wird die Zelle immer geleert, da in Spalte A kein Suchkriterium ist.
Danke vorab.
Gruß Christoph

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen vor Überschreibung durch makro schützen
11.09.2017 13:25:09
ChrisL
Hi Chris
Du müsstest die Bedingung (Wert in Spalte A leer?) in dein Makro einbauen. Einen allgemein gültigen Befehl um vor Makros zu schützen gibt es nicht.
Für Anschlussfragen bitte das Makro und eine kleine Beispieldatei posten.
cu
Chris
AW: Zellen vor Überschreibung durch makro schützen
11.09.2017 14:03:13
Chris
Hallo ChrisL,
Danke für deine Antwort.
Hier das Makro, das bisher besteht:
Sub Test()
With Range("C4:C" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=IFERROR(IF(ISERROR(VLOOKUP(A4,'[2017_08_10_Datei Gruppen_CZ_V1.0.xlsx] _
171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE)),VLOOKUP(A4,'[2017_08_10_Datei Verteiler_CZ_V1.0.xlsx]171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE),VLOOKUP(A4,'[2017_08_10_Datei Gruppen_CZ_V1.0.xlsx]171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE)),"""")"
.Value = .Value
End With
End Sub
Bisher habe ich in dem makro die Befehle eingetragen, in einer bestimmten Zelle einen text einzutragen. Das funktioniert allerdings nur bis zu dem Punkt, wo man einmal eine neue Zeile hinzufügen muss.
Leider haben meine Versuche mit wenn-funktionen nicht den gewünschten Erfolg gebracht.
Anzeige
AW: Zellen vor Überschreibung durch makro schützen
11.09.2017 13:27:02
Daniel
Hi
grundsätzlich ist es keine gute Idee, innerhalb einer Spalte unterschiedliche Datentypen einzusetzen.
Innerhalb deiner Spalte sollten nach der Überschrift immer nur gleichartige Werte stehen (möglichst die, die zur Überschrift passen), und wenn Formeln da stehen, sollte es immer die gleiche Formel sein.
du könntest also, um dieser Anforderung gerecht zu werden, die festen Texte in einer Hilfsspalte ablegen (z.B. Spalte Z, möglichst die erste freie Spalte am Tabellenende) und dort dann in der jeweiligen Zeile den anzuzeigenden Text darstellen)
damit der Text dann in Spalte C auftaucht, könntest du die Formel so erweitern:
=Wenn(A2="";Z2;SVerweis(A2;.......))
dann wird, wenn in A2 nichts steht, der Text aus Z2 angezeigt und wenn was drin steht, die SVerweis-Funktion verwendet.
Gruß Daniel
Anzeige
AW: Zellen vor Überschreibung durch makro schützen
11.09.2017 14:16:41
Chris
Hi Daniel,
danke für deine Antwort.
Kannst du mir helfen, wie ich die IF in dieses Makro einbaue?`
Sub Test()
With Range("C4:C" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=IFERROR(IF(ISERROR(VLOOKUP(A4,'[2017_08_10_Datei Gruppen_CZ_V1.0.xlsx] _
171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE)),VLOOKUP(A4,'[2017_08_10_Datei  _
Verteiler_CZ_V1.0.xlsx]171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE),VLOOKUP(A4,'[2017_08_10_Datei Gruppen_CZ_V1.0.xlsx]171_HP_MS_MS5_D20170731_Shared_'!$B$2:$L$15000,2,FALSE)),"""")"
.Value = .Value
End With
End Sub
Mir fehlt da die Idee bzw. meine Versuche sind gescheitert.
Danke.
Anzeige
AW: Zellen vor Überschreibung durch makro schützen
11.09.2017 15:08:29
Daniel
Hi
sorry, aber wo ist das Probelm ?
du sagst von dir Excel - gut.
da solltest du ein einfaches: =Wenn(A4="";Z4;deine alte Formel) auch alleine hinbekommen.
wenn es dich direkt VBA überfordert, dann kannst du die Formel auch direkt in Excel eingeben und dir den Formeltext für den Code dann im Direktfenster anzeigen lassen:
?Selection.Formula
das doppeln der Anführungszeichen nicht vergessen, aber auch dass kann man vom Computer machen lassen:
?Replace(Selection.Formula, """", """""")

und dann den Formeltext in den Code kopieren.
ansonsten würde ich dir empfehlen, in VBA die R1C1-Schreibweise zu verwenden (.FormulaR1C1), die ist für die Programmierung besser geeignet und auch übersichtlicher, wenn du dir angewöhnst, alle Zellbezüge absolut zu setzen und nur die relativ zu machen, die unbedingt relativ sein müssen.
bei längern Formeln ist es günstiger, diese zunächst in eine Variable zu Schreiben, dann kann man sie einfacher Stücken:
FO = "=Teilformel1"
FO = FO & "Teilformel2"
FO = FO & "Teilformel3"
und man kann länger Bestandteile wie Pfad- und Dateinamen als kurze Dummy-Texte einfügen um sie dann durch den Originaltext zu ersetzen:
FO = "=...[_Datei1_]...
FO = Replace(FO, "_Datei1_", "2017_08_10_Datei Gruppen_CZ_V1.0.xlsx")
Gruß Daniel
Anzeige

258 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige