Clever-Excel-Forum

Normale Version: Wert in Box und Zelle ausgeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo. Ich möchte die Excel Version mittels Makro auslesen und das Ergebnis per MsgBox ausgeben und in die Zelle A1 schreiben lassen. Aus den restlichen Ergebnissen wie Pfadüberprüfungen und so weiter stelle ich einen Text zusammen, der dann kopiert werden soll.

Dieses Makro habe ich bereits:

Sub Excel_Version()
'
' Excel_Version Makro
Select Case Left(Application.Version, 1)
Case 5
 MsgBox "Excel 5"
Case 7
 MsgBox "Excel 7/95"
Case 8
 MsgBox "Excel 97"
Case 9
 MsgBox "Excel 2000"
Case 1
Select Case Left(Application.Version, 2)
 Case 10
   MsgBox "Excel 2002"
 Case 11
   MsgBox "Excel 2003"
 Case 12
   MsgBox "Excel 2007"
 Case 14
   MsgBox "Excel 2010"
Case 15
   MsgBox "Excel 2013"
Case 16
   MsgBox "Excel 2016"
 Case Else
  MsgBox "Unbekannte Excel-Version!"

End Select

End Select
End Sub
Hallo,

Zitat:https://www.clever-excel-forum.de/thread...#pid126854

... fehlt noch das in die Zelle schreiben, aber das wirst Du ja wohl hinkriegen, denke ich.

... übrigens:
Zitat: Case Else
  MsgBox "Unbekannte Excel-Version!"

End Select

End Select
End Sub

... das dürfte wohl ein Schluck zuviel sein, oder?
Wenn man die Zeilen vernünftig einrückt, dann lassen sich solche Fehler sehr leicht vermeiden.
Hallo,

und was genau ist jetzt deine Frage/Problem?

Gruß Werner
Hallo... meine Kenntnisse lese ich mir gerade an...

Funktioniert alles schon super, aber ich bekomme ja nur die MsgBox... möchte aber gleichzeitig, das er die Version in eine Zelle schreibt... und genau das habe ich eben noch nicht gefunden...
Dein Makro ist auch super, toll... Danke... nur wie bekomme ich gleichzeitig den Wert (zb Excel 2016) in eine Zelle geschrieben... seufz
Hallo,

so:

Code:
Sub Excel_Version()
'
' Excel_Version Makro
Select Case Left(Application.Version, 1)
   Case 5
       MsgBox "Excel 5"
       Range("A1") = "Excel 5"
   Case 7
       MsgBox "Excel 7/95"
       Range("A1") = "Excel 7/95"
   Case 8
       MsgBox "Excel 97"
       Range("A1") = "Excel 97"
   Case 9
       MsgBox "Excel 2000"
       Range("A1") = "Excel 2000"
End Select

Select Case Left(Application.Version, 2)
   Case 10
       MsgBox "Excel 2002"
       Range("A1") = "Excel 2002"
   Case 11
       MsgBox "Excel 2003"
       Range("A1") = "Excel 2003"
   Case 12
       MsgBox "Excel 2007"
       Range("A1") = "Excel 2007"
   Case 14
       MsgBox "Excel 2010"
       Range("A1") = "Excel 2010"
   Case 15
       MsgBox "Excel 2013"
       Range("A1") = "Excel 2013"
   Case 16
       MsgBox "Excel 2016"
       Range("A1") = "Excel 2016"
   Case Else
       MsgBox "Unbekannte Excel-Version!"
       Range("A1") = "Unbekannte Excel-Version"
End Select

End Sub
Und wenn es nicht das aktive Blatt ist wo das rein soll, dann jeweils noch das Tabellenblatt vor dem Range.


Gruß Werner
Ganz herzlichen Dank... oh man, wenn man es so liest... Super
Hallo,

Na, dann schreibst Du eben noch eine Zeile dazu. Hier beispielsweise:

Zitat:Private Sub Meldung10()
   MsgBox prompt:="Version 10.0 ('2002; XP)"
   Cells(1, 1) = "Version 10.0 ('2002; XP)"
'                31. Mai 2001          Excel 2002 (MS Office XP) 10.0   Windows  (Einführung Produktaktivierung)
'                                                                                (letzte Version für Windows 98 / ME / NT 4.0)
End Sub
Hallöchen,

Du kannst auch in den verschiedenen cases einen String bilden und diesen am Ende in eine Zelle schreiben.

Dim strgString$
Select Case Irgendwas
Case 1: strgString = "1 ist meins"
Case 2: strgString = "2 ist deins"
Case 3: strgString = "3 ist seins"
End Select
MsgBox strgString

Oder Du nimmst ein Array

Dim arrVersions
arrVersions = Array(, , , , , , , , , , , , , , , , 2016)
MsgBox "Excel " & arrVersions(Val(Application.Version))

musst natürlich die Zahlen noch an die richtige Stelle im Array zwischen die Kommas packen, ich hab's mal nur für die 16 gemacht = 2016.