hallo zusammen!!
mit euerer hilfe habe ich schon öfters makros zusammenflicken können. ich hoffe ihr könnt mir dieses mal auch weiterhelfen...
mit meinem makro lese ich intensitäten von spektren ein, spalte für spalte.
die eingelesenen files werden mit aufsteigenden zahlen (zb: "024", "183", etc) abgespeichert und somit auch nacheinander eingelesen. das passt soweit auch.
nun möchte ich aber das sobald ein file den namen "beliebige Zahl_n" (n: für negativ) hat, diese invertiert wird (also alle werte mit -1 multipliziert). von zeile 2-900
hier mein makro:...
Sub restFiles()
Dim varFileNames As Variant
Dim lngCount As Long
Dim wksZiel As Worksheet
Dim wbkQuelle As Workbook
Dim lngZielSpalte As Long
varFileNames = Application _
.GetOpenFilename("PICS-Regeldateien (*.prf), *.prf", 1, "Datei wählen", , True) 'Filenamen holen
If VarType(varFileNames) = vbBoolean Then 'bei Abbruch
MsgBox "Keine Datei gewählt!" 'kleine Meldung
Exit Sub 'Makro Ende
End If
Application.ScreenUpdating = False
'Bildschirmaktualisierung aus
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
'ZielTabelle !anpassen! und "merken"
'ggf. hier gesamten Zielbereich löschen
'With wksZiel
'.Range(.Range("A5"), .Range("A5").SpecialCells(xlCellTypeLastCell)).clearContents
'End With
For lngCount = LBound(varFileNames) To UBound(varFileNames) Step 1
'vom ersten bis zum letzten File
'MsgBox ("File " & varFileNames(lngCount) & " wird verarbeitet")
'===========
'PSEUDOCODE
'===========
'EinfügeZielRange ermitteln (1.=A5, 2.=D5, 3.=G5, ...?)
lngZielSpalte = (lngCount - 1) + 3
'File öffnen (Workbooks.OpenText Filename:=varfilenames(lngCount), Origin:= ...)
Workbooks.OpenText FileName:=varFileNames(lngCount), StartRow:=6, Tab:=True, Comma:=True
Set wbkQuelle = ActiveWorkbook
'Range kopieren
wbkQuelle.ActiveSheet.Range("B1:B900").Copy
'in ZielRange einfügen
wksZiel.Cells(3, lngZielSpalte).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'geöffnetes File Schliessen
wbkQuelle.Close
Next lngCount
'nächstes File der Auswahl
Application.ScreenUpdating = True
'Bildschirmaktualisierung ein
ThisWorkbook.Activate
wksZiel.Select
wksZiel.Range("C3").Select
Set wksZiel = Nothing
Set wbkQuelle = Nothing
End Sub
ich freue mich schon auf vorschläge!
vielen dank und freundliche grüße
harald