Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit VBA Zellen durchsuchen und gewisse Einträge ersetzen, ohne die Formel zu beeinflussen

Frage Microsoft Microsoft Office

Mitglied: wydy

wydy (Level 1) - Jetzt verbinden

03.08.2009, aktualisiert 13:26 Uhr, 15114 Aufrufe, 3 Kommentare

Wie kann ich alle Zellen nach einer bestimmten Zeichenkette durchsuchen, ohne die Formeln abzuändern

Moin Leute,
ich erstelle zurzeit eine Excel "Vorlage" und möchte in dieser mit VBA eine Funktion einbauen, wo in an allen wichtigen Stellen das gewünschte Jahr eingetragen wird. Man hat auf der Startseite eine Zelle, in der man die Jahrzahl eingeben kann und daneben einen Button. Wird der Button bestätigt, sollen alle Zellen nach dem Wert "TempDatum" durchsucht und der Wert von der Zelle dort eingetragen werden. Jedoch funktioniert das ganze nicht wirklich. In normalen Zellen wird der Wert ohne Probleme ersetzt. Sobald es sich jedoch um eine Formel handelt, spielt das ganze verrückt. Ist die Formel ungültig, bricht das Programm mit der Fehlermeldung: Typen unverträglich ab. Ist die Formel jedoch gültig, wird die Formel gelöscht und nur ein Wert in der Zelle eingetragen. Gibt es eine Funktion um das Ganze zu lösen? Was mache ich falsch?
Hier mal ein paar Beispiele, damit ihr seht, was ich meine:
Neuer Wert: 2009

Das ist ein Text TempDatum -> Das ist ein Text 2009
='C:\Daten\TempDatum\[Daten.xls]Sheet1!A1 -> ='C:\Daten\2009\[Daten.xls]Sheet1!A1
Das erste Beispiel funktioniert auch, nur wird beim zweiten Beispiel bei mir die ganze Formel ersetzt.

Hier mal mein bisheriger Quelltext:
01.
Sub QuelleEdit() 
02.
   Dim intRow As Integer 
03.
   Dim intColumn As Integer 
04.
   Dim intPosition As Integer 
05.
   Dim stringText As String 
06.
       
07.
   stringOld = "TempDatum" 
08.
   stringNew = Cells(9, 4) 
09.
   'Ganze Formular durchsuchen 
10.
   For intRow = 1 To 37 
11.
      For intColumn = 1 To 78 
12.
        'Inhalt ersetzen 
13.
        Cells(intRow, intColumn) = Replace(Cells(intRow, intColumn), stringOld, stringNew) 
14.
      Next intColumn 
15.
   Next intRow 
16.
End Sub
Ich hab's auch schon mit WorksheetFunction.Substitute versucht.
Mitglied: bastla
03.08.2009 um 13:55 Uhr
Hallo wydy!

Versuch's mit folgender Zeile 13:
Cells(intRow, intColumn).Formula = Replace(Cells(intRow, intColumn).Formula, stringOld, stringNew)
Was mache ich falsch?
Wenn Du für Cells() keine Eigenschaft angibst, wird defaultmäßig nicht "Formula", sondern "Value" verwendet.

Grüße
bastla
Bitte warten ..
Mitglied: wydy
03.08.2009 um 14:48 Uhr
Danke für die Hilfe, mit Cells.Formula hats geklappt.
Bitte warten ..
Mitglied: 76109
03.08.2009 um 15:04 Uhr
Hallo wydy und bastla!

Eine For Each-Schleife sollte ausreichen:
01.
    Dim c As Range    
02.
    For Each c In Range("A1:BZ37") 'Zeile 1-37, Spalte 1-78 
03.
        c.Formula = Replace(c.Formula, stringOld, stringNew) 
04.
    Next
Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

Microsoft Office
gelöst Formel für eine automatische Füllung anderer Zellen (1)

Frage von michael1306 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel-HYPERLINK Formel - den freundlichen Namen in der Formel aus Zelle (8)

Frage von Komoran12 zum Thema Microsoft Office ...

Microsoft Office
gelöst Aktive Zelle mit festem Bezug multiplizieren und ausgeben (Formel) (7)

Frage von mreske zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...

Windows Installation
Windows 10 neu installieren (10)

Frage von imebro zum Thema Windows Installation ...