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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bauer (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

Gruß

von trafo (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Aha!
Danke an Euch, es hat geholfen.

schönes Wochenende

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.