Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 14487 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
VB for Applications
gelöst VBA Zellen dublizieren plus Wenn Dann Funktion (4)

Frage von grasihuepfer zum Thema VB for Applications ...

Microsoft Office
gelöst Zellen mit vba verketten bis Bedingung eintritt (2)

Frage von hellas zum Thema Microsoft Office ...

Microsoft Office
Unterordner durchsuchen Excel VBA (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (19)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

Windows Server
Fehler Vertrauensstellung im AD (14)

Frage von thomas-99 zum Thema Windows Server ...