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

Frage Entwicklung Batch & Shell

Mitglied: peterchen1976

peterchen1976 (Level 1) - Jetzt verbinden

22.09.2014 um 16:18 Uhr, 938 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 ...

Windows Netzwerk
Als Administrator Rechner herunterfahren, wo jemand angemeldet ist
Frage von 113726Windows Netzwerk32 Kommentare

Hallo, wir haben leider immer mal Serverprobleme, sodass der SBS während der Arbeitszeit neu gestartet werden muss. Nun ist ...

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 ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 21 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 1011 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Microsoft Office
Outlook 2016 - Makro startet nicht über Knopf im Menüband
Frage von ZunarasMicrosoft Office9 Kommentare

Schönen guten Tag! ich brauche wieder einmal Hilfe. Ich möchte gerne von Office 2010 32bit auf 2016 64bit wechseln ...