Forum: PC-Programmierung Excel Macro zum erstellen von Header Files


von Bauer (Gast)


Lesenswert?

Hallo Zusammen

Ich habe eine Excel Tabelle (.xlsx), in der ich mein Memory für 
Einstellungen verwalte. Nun würde ich gerne aus den Informationen 
mittels eines Macros eine Header Datei mit vorgefertigtem Enum 
erstellen.
Im File sollte schlussendlich so was ähnliches wie

typedef enum {
 version = 0x111,
 setting xy = 0x222
 ...
 }

stehen. Wobei die information für den Namen wie auch der zugewiesene 
Wert selbst aus der Excel Datei kommt.

Meine Frage:
Wie kann ich mir in einem Macro diesen String so zusammen bauen und 
speichern?

von deathfun (Gast)


Lesenswert?

Hallo Bauer,

nun was genau möchtest du machen? Ich kann dir leider noch nicht ganz 
folgen.



-Möchtest du auf einen Button drücken und ein Skript baut aus deinen 
Eingaben im Excel Dokument einen String der in der Zwischenablage 
gespeichert wird? (so dass du ihm mit Strg+V einfügen kannst)

-Oder möchtest du eine bei dem Knopfdruck eine Datei erstellt wird?

-Soll vielleicht sogar die vorhandene Datei automatisch geöffnet und 
bearbeitet werden?


Gruß
deathfun

von Dennis S. (eltio)


Lesenswert?

Vermutlich ist das hier ein guter Einstieg:
http://de.wikibooks.org/wiki/VBA_in_Excel

Gruß

von trafo (Gast)


Lesenswert?

Geht z.B. mit den Befehlen open, print, close.

z.B. meine Q&D-Exportfunktion zum Erstellen einer LTSpice lib.
1
Private Sub export2ltspice()
2
    Dim c, r As Integer
3
    Dim part, tn, rn, beta, dc, hc As String
4
    Dim dat As String
5
    Dim fh As Integer
6
    Dim err As Integer
7
    
8
    fh = FreeFile
9
    Open "amt_ntc.lib" For Output As #fh
10
        
11
    With Worksheets("Export")
12
        For r = .Range("ex_part").Row + 1 To .UsedRange.Rows.Count   'loop through all rows
13
            err = False
14
            If IsError(Cells(r, .Range("ex_beta").Column).value) Then
15
                err = True
16
            ElseIf Cells(r, .Range("ex_beta").Column).value = "0" Then
17
                err = True
18
            End If
19
                
20
            If IsError(Cells(r, .Range("ex_dc").Column).value) Then
21
                err = True
22
            ElseIf Cells(r, .Range("ex_dc").Column).value = "0" Then
23
                err = True
24
            End If
25
            
26
            If IsError(Cells(r, .Range("ex_hc").Column).value) Then
27
                err = True
28
            ElseIf Cells(r, .Range("ex_hc").Column).value = "0" Then
29
                err = True
30
            End If
31
            
32
            If Not err Then
33
                part = Cells(r, .Range("ex_part").Column).value
34
                tn = "tn=25"
35
                rn = "rn=" & Cells(r, .Range("ex_rn").Column).value
36
                beta = "beta=" & Cells(r, .Range("ex_beta").Column).value
37
                dc = "dc=" & Cells(r, .Range("ex_dc").Column).value & "m"
38
                hc = "hc=" & Cells(r, .Range("ex_hc").Column).value & "m"
39
                dat = " ;" & Cells(r, .Range("ex_date").Column).value
40
            
41
        
42
                Print #fh, ".SUBCKT " & part & " A B TA TC TJ"
43
                Print #fh, "  X1  A B TA TC TJ xntc PARAMS: " _
44
                          & tn & " " & rn & " " & beta & " " _
45
                          & dc & " " & hc & " " & dat
46
                Print #fh, ".ENDS"
47
            End If
48
        Next r
49
    End With
50
    
51
    Close #fh
52
End Sub

von Bauer (Gast)


Lesenswert?

Aha!
Danke an Euch, es hat geholfen.

schönes Wochenende

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.