Comment savoir si l'utilisateur est sous XP ou Seven?

YANN-56

XLDnaute Barbatruc
Bonsoir à tous, ou Bonjour suivant l'heure,

J'utilise "GetDetailsOf" pour dresser la liste des propriétés résumées d'un document Word.
(Ce qui est du même tonneau pour un Excel)

Comme le sujet de la discussion ci-dessous le démontre:
https://www.excel-downloads.com/thr...ent-2-le-2-nest-pas-le-meme-chez-tous.153645/

Les n° d'Items sont différents!

J'ai pensé palier ce problème en adaptant mon code suivant le "Windows" utilisé.

Mais malgré moult recherches, je ne parviens pas à pomper son identité.

Mon application étant utilisée en réseau avec des versions différentes; c'est le désordre!

Si quelqu'un a une idée; je lui serai très reconnaissant.

Merci par avance,

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir à ceux qui passeront par ici,

Bonsoir et grand Merci Fred.:):):)

Je n'ai pas testé car mon lit me réclame avec trop d'arguments.

A la lecture, je pense que c'est là le bon code.
Au saut du lit, je vais m'appliquer à le traduire pour ce dont j'ai besoin.

Je ne vais pas manquer de te tenir au courant.

Amicalement, et à demain.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Fred et à ceux qui passeront par ici,

Faute d'avoir été capable d'adapter le code proposé par Fred, je suis passé par la porte de derrière!:rolleyes:

Code:
'Nécessite d'activer la référence Microsoft Shell Controls and Automation
Private Sub CommandButton1_Click()
    Dim DOCUMENT As Shell32.Folder
    Set DOCUMENT = CreateObject("Shell.Application").Namespace(ThisWorkbook.Path)
For i = 0 To 34
    If DOCUMENT.GetDetailsOf(DOCUMENT.Items, 10) = "Titre" Then
       MsgBox "Windows XP"
       Exit Sub
    End If
    If DOCUMENT.GetDetailsOf(DOCUMENT.Items, 21) = "Titre" Then
       MsgBox "Windows 7"
       Exit Sub
    End If
Next i
End Sub

J'ai utilisé la comparaison avec "Titre", puisque "Auteur" est passé au pluriel depuis Vista!
(Ceci pour éviter un "Or")

Merci encore à Fred d'avoir regardé et bonne journée à tous.
Ci-joint le Classeur au cas où il puisse servir à quelqu'un.

Amicalement,

Yann
 

Pièces jointes

  • TEST_WIND.xls
    25.5 KB · Affichages: 136

Paritec

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Yves:eek: fred:eek: le forum
Juste pour te saluer mon cher Yves, trop rare Yves dirais-je même, et te dire que les retraités de l'Ouest qu'est-ce qui se couchent Tôt !!!!!
Cela va engendrer une réponse Word normalement!!!!
amicalement
Papou:eek:
 

fhoest

XLDnaute Accro
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour a tous
voici pour toi yves un petit bout de code auquel j'ai pensé pour avoir la version windows
A+
 

Pièces jointes

  • Yann56_version windows xlsx.xlsm
    17 KB · Affichages: 147

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir Fred, et à ceux qui passeront par ici,

C'est effectivement efficace!

Cependant mon but était de récupérer automatiquement le nom de la version,
car la suite du code doit en tenir compte sans autre manipulation.

Par exemple:
Si c'est XP, les Commentaires seront récupérés ainsi:
Code:
DOCUMENT.GetDetailsOf(DOCUMENT, 15)

Si c'est SEVEN, les Commentaires seront récupérés ainsi:
Code:
DOCUMENT.GetDetailsOf(DOCUMENT, 25)

Mais peut-être il y a-t-il matière à simplifier ma bidouille via ton idée?
Je ne sais pas.

Amicalement,

Yves
 

fhoest

XLDnaute Accro
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re,
je ne sais pas si on peut trouver une solution via ce que j'ai proposé mais ceci dit lorsque j’exécute le code de ton fichier j'ai le msgbox version xp hors je suis sur vista donc malaise...
A bientôt (ps je cherche de mon coté)
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re Fred,

Etrange !!!

J'ai mis en page 2 du Classeur, ce que j'ai récupéré à cette adresse:
GetExtFileProperties() - Get Extended File Properties / Attributes of Files - KiXtart.org - official site

J'ai testé sur mon Ordi de bureau et sur mon NetBook.
Le premier est sous XP, le deuxième est sous SEVEN, et il n'y a pas de confusion suite à mes tests.

Je vais aussi chercher à comprendre, car cela est important pour la suite de mon appli.

Merci pour ta ténacité,

Yves

P.S. J'ai eu entre les mains un code qui dressait la config totale d'un pc;
mais je n'arrive plus à le retrouver dans mes archives!:mad: ..... Je fouille :p
 

Pièces jointes

  • TEST_WIND_1.xls
    60.5 KB · Affichages: 159
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir Jean-Claude et à tous,

C'est fou comme tout "Fonctionne" mieux quand on sait y faire!

Il faut absolument que j'apprenne à me servir des Fonctions!!!

Cela fonctionne à merveille!

Merci beaucoup à toi et Fred. :) :)

Amicalement,

Yann
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour à tous,

Pour améliorer la fonction, la rendre volatile.

Et puis un petit Array :

Code:
Public Function Version_Windows() As String
    Dim version As String
    Dim os As OSVERSIONINFO    'reçoit les informations de version
    Dim retval As Variant    'valeur de retour
    Dim a
    Application.Volatile
    os.dwOSVersionInfoSize = Len(os)    'définir la taille de la structure
    retval = GetVersionEx(os)    'les informations de version de Windows en lecture
    version = os.dwPlatformId & "." & os.dwMajorVersion & "." & os.dwMinorVersion
    a = Array("1.4.0", "95", "1.4.10", "98", "1.4.98", "ME", "2.3.51", "NT 3", _
      "2.4.0", "NT 4", "2.5.0", "2000", "2.5.1", "XP", "2.6.0", "Vista", "2.6.1", "Seven")
    retval = Application.Match(version, a, 0) 'position dans le tableau
    Version_Windows = "Unknown"
    If IsNumeric(retval) Then Version_Windows = "Win " & a(retval)
End Function
A+
 

Pièces jointes

  • Version Windows Fonction(1).xls
    23.5 KB · Affichages: 162

Lone-wolf

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour à tous,

ça ne serait ps plus interessant de mettre le nom de la version aussi?

Xp edition familiale, professionnel avec Services pack 1, pack 2 etc. Pour Seven Seven edition familiale, home premium, professionnel, intégrale.


A+ :cool:

Amicalement
Lone-wolf
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour au participants, et à ceux qui passeront par là,

Bonjour Job, et Merci pour ton intervention judicieuse.:)

J'ai encore une fois pris la mesure de ce que j'avais à apprendre.
C'est super bénéfique pour la modestie et la motivation.


Il y a aussi deux points que j'aimerais souligner:
- Je regrette de ne pas avoir une bonne poignée d'années de moins, et de ne pas avoir découvert VBA plus tôt.
- Je me réjouis d'avoir gardé cette passion, alors qu'en retraite,
et loin des p'tits trucs que je tricotais pour, et hors de mes heures de boulot.

Cette gymnastique des neurones est certainement un bon remède contre la sénilité précoce!
Il devrait être remboursé par la sécu!!! ;)

Ta réponse à Lone-Wolf, que je salue au passage, tombe à point quant à l'âge du Capitaine.

Je vais mettre à la poubelle mon astuce peut fiable, et utiliser cette "Fonction",
avec l'une ou l'autre des deux versions.

Encore merci à vous, et plein de bonnes choses,

Amicalement,

Yann

P.S. Job, si tu repasses par là: Que veut dire: Application.Volatile ? ...Désolé d'abuser...
 
Dernière édition:

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T