Top-Themen

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 Rechnen oder ersetzten hat jemand eine Idee

Mitglied: peterchen1976

peterchen1976 (Level 1) - Jetzt verbinden

22.09.2014 um 16:18 Uhr, 951 Aufrufe, 5 Kommentare, 1 Danke

Hallo,
folgendes Problem: Ich möchte in einer Datei (mir ist es egal in welchem Format) folgendes abändern...

If Not zelle Is Nothing Then
If zelle.Address = ("$C$15") Then
ActiveSheet.Range("C15").Interior.ColorIndex = 2
End If
End If
Set zelle = Target

Die "15" soll nun plus 40 also 55 da stehen.

In der nächsten Spalte dann

If Not zelle Is Nothing Then
If zelle.Address = ("$C$16") Then
ActiveSheet.Range("C16").Interior.ColorIndex = 2
End If
End If
Set zelle = Target

"16" plus 40 also 56

Die Liste geht immer so weiter bis "C98"

um nicht immer alles von hand ändern zu müssen... hat jemand einen Idee?

Gruß Peterchen
Mitglied: ITvortex
22.09.2014, aktualisiert um 16:23 Uhr
Bitte Code Tags hinzufügen <code></code(>)

lg
Bitte warten ..
Mitglied: Friemler
23.09.2014, aktualisiert um 00:36 Uhr
Hallo Peterchen,

das lässt sich leicht mit Regular Expressions lösen, hier in VBScript:
01.
Option Explicit 
02.
 
03.
 
04.
'Konstanten für Ein-/Ausgabe 
05.
Const ForReading   = 1 
06.
Const ForWriting   = 2 
07.
Const ForAppending = 8 
08.
 
09.
'Suchmuster 
10.
Const Pattern1 = "(.*If zelle\.Address = \(""\$C\$)([1-9][0-9])(""\) Then.*)" 
11.
Const Pattern2 = "(.*ActiveSheet\.Range\(""C)([1-9][0-9])(""\)\.Interior\.ColorIndex = 2.*)" 
12.
 
13.
 
14.
'Deklaration der Variablen 
15.
Dim objArgs, objFSO, objInStream, objOutStream, objRegExp 
16.
Dim strInFilePath, strOutFilePath, arrFileContent 
17.
 
18.
 
19.
'Hauptprogramm 
20.
Set objFSO  = CreateObject("Scripting.FileSystemObject") 
21.
Set objArgs = WScript.Arguments 
22.
 
23.
If ParseCommandLine(objArgs) Then 
24.
  Set objInStream = objFSO.OpenTextFile(strInFilePath, ForReading, False) 
25.
  arrFileContent  = Split(objInStream.ReadAll, vbCrLf) 
26.
  objInStream.Close 
27.
 
28.
  Set objRegExp        = New RegExp 
29.
  objRegExp.Global     = True 
30.
  objRegExp.IgnoreCase = True 
31.
 
32.
  Call ReplaceNumbers(arrFileContent, Pattern1) 
33.
  Call ReplaceNumbers(arrFileContent, Pattern2) 
34.
 
35.
  Set objOutStream = objFSO.OpenTextFile(strOutFilePath, ForWriting, True) 
36.
  objOutStream.Write Join(arrFileContent, vbCrLf) 
37.
  objOutStream.Close 
38.
End If 
39.
 
40.
 
41.
 
42.
'--------------------------------------------------------------------------- 
43.
'Unterprogramme 
44.
'--------------------------------------------------------------------------- 
45.
 
46.
'/////////////////////////////////////////// 
47.
'Ersetzungen ausführen 
48.
'/////////////////////////////////////////// 
49.
Sub ReplaceNumbers(ByRef arrFileContent, ByRef strPattern) 
50.
  Dim intLineCnt, objMatch 
51.
 
52.
  objRegExp.Pattern = strPattern 
53.
 
54.
  For intLineCnt = 0 To UBound(arrFileContent) 
55.
    For Each objMatch In objRegExp.Execute(arrFileContent(intLineCnt)) 
56.
      If objMatch.SubMatches.Count > 0 Then 
57.
        arrFileContent(intLineCnt) = objMatch.SubMatches(0) & CStr(CInt(objMatch.SubMatches(1)) + 40) & objMatch.SubMatches(2) 
58.
      End If 
59.
    Next 
60.
  Next 
61.
End Sub 
62.
 
63.
 
64.
'/////////////////////////////////////////// 
65.
'Befehlszeile einlesen und Name von Ein- 
66.
'und Ausgabedatei ermitteln 
67.
'/////////////////////////////////////////// 
68.
Function ParseCommandLine(ByRef objArgs) 
69.
  ParseCommandLine = False 
70.
 
71.
  If objArgs.Count > 0 Then 
72.
    strInFilePath = objFSO.GetAbsolutePathName(objArgs(0)) 
73.
 
74.
    If objFSO.FileExists(strInFilePath) Then 
75.
      strOutFilePath = objFSO.BuildPath(objFSO.GetParentFolderName(strInFilePath), _ 
76.
                                        objFSO.GetBaseName(strInFilePath) _ 
77.
                                        & "_neu." _ 
78.
                                        & objFSO.GetExtensionName(strInFilePath)) 
79.
      ParseCommandLine = True 
80.
    End If 
81.
  End If 
82.
End Function
Den Code z.B. als rexplace.vbs speichern und dann mit
cscript /nologo rexplace.vbs "Pfad-zur-zu-ändernden-Datei"
aufrufen. Du kannst die Eingabedatei auch per Drag'n Drop auf der Scriptdatei fallen lassen.

Das Script erzeugt eine neue Datei, deren Name sich aus <NameDerEingabedatei>+_neu.+<Erweiterung> zusammensetzt

Gruß
Friemler
Bitte warten ..
Mitglied: peterchen1976
24.09.2014 um 08:02 Uhr
@ Friemler

Vielen Dank für Deine Hilfe brauche noch ein wenig Unterstützung worein muss ich es kopieren? Habe nur Visual Basic Express
Bitte warten ..
Mitglied: Friemler
24.09.2014, aktualisiert um 09:22 Uhr
Einfach als Textdatei mit der Dateinamenserweiterung .vbs speichern und so wie oben beschrieben aufrufen. Der VBScript-Interpreter cscript.exe ist auf jedem Windows-System vorhanden.

[EDIT]
Ich habe gerade erste Deine PM gelesen.

  1. Wenn es Probleme gibt, bitte immer im Thread ein neues Posting erstellen.
  2. Bei mir läuft das Script ohne Fehler. Wenn das bei Dir nicht der Fall ist, liegt es an der Eingabedatei. Du müsstest dann mal einen Ausschnitt der realen Datei hier einstellen und dabei Codetags verwenden.
[/EDIT]
Bitte warten ..
Mitglied: peterchen1976
25.09.2014 um 12:21 Uhr
Hallo und vielen Dank für diese Lösung ....

Hat super geklappt...


Peter
Bitte warten ..
Ähnliche Inhalte
Router & Routing
Restart on Wan. Hat jemand eine Idee?
Frage von ExtremDauRouter & Routing6 Kommentare

Moin Zusammen, ich möchte einen PC, der nur über einen UMTS/3G Router erreichbar ist, mit Hilfe dieses Routers im ...

Batch & Shell
IPTABLES Regeln ersetzten
gelöst Frage von SpeakerSTBatch & Shell4 Kommentare

Hallo, ich hoffe mir kann hier jemand helfen. Ich habe ein Script das alle 5 min Prozesse abfragt. Wenn ...

Batch & Shell
Dateinamen Umbenennen nach Ersetzten
gelöst Frage von batchnewbieBatch & Shell9 Kommentare

Hallo, ich experimentiere ein wenig und bin ein einem Punkt, wo ich nicht weiter weiß. Ich lese ein Dateinamen ...

Microsoft

Verknüpfungspfeile werden durch andere Symbole ersetzt

gelöst Frage von tomolpiMicrosoft3 Kommentare

Hallo, mir ist vorhin was lustiges aufgefallen: die Pfeile bei den Verknüpfungen auf meinem Desktop werden neuerdings willkürlich durch ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 4 StundenGoogle Android2 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 5 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 8 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server39 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing18 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...