IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vidéo temps réel dans une feuille excel depuis une webcam/caméra externe [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut Vidéo temps réel dans une feuille excel depuis une webcam/caméra externe
    Bonjour à tous,

    J'ai à saisir dans une feuille excel une valeur de pression à partir de laquelle un matériau n'est plus étanche à l'eau. Pour obtenir cette valeur, j'augmente manuellement la pression et vérifie la surface du matériau sur une vidéo issue d'un microscope USB via le logiciel AMCAP : quand une goutte d'eau apparaît je note la valeur de la pression. Cependant, naviguer entre la fenêtre excel et la fenêtre vidéo n'est guère pratique c'est pourquoi j'aimerais insérer la vidéo en temps réel dans ma feuille de calcul afin de synchroniser observation et saisie et de le faire au même endroit.

    J'ai beaucoup cherché mais je ne trouve absolument rien d'intéressant. J'en fais donc appel à vous dans l'espoir que vous puissiez m'aider.

    Cordialement

    Nagel Tha

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    A ma connaissance, on peut insérer dans Excel un fichier video mais pas une video en direct.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Je vais attendre quelques avis. Si personne n'a de piste je me contenterai d'insérer un cliché si c'est utile. Mon souci étant justement que comme je n'ai qu'une valeur a noté, prendre un cliché n'est pas une bonne solution dans le sens où cela va forcer à faire une saisie à chaque incrément.

    A moins de faire une boucle afin d'écraser la capture avec une nouvelle capture et à ce moment là il faudrait qu'une nouvelle itération de la boucle soit déclenchée par un événement clavier (l'incrément étant manuel je ne peux pas utiliser un pas de temps constant)...

    Cela amène une autre question : est-il possible de récupérer la valeur des touches pressées afin qu'entrer la valeur de la pression soit mon événement clavier et que les 3 touches du pavé numérique permettent d'inscrire en même temps la valeur de la pression ? (aucune cellule n'étant sélectionnée spécialement)

    Si vous avez d'autres propositions je suis preneur bien sûr

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Voici ce que j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Sub CommandButton1_Click()
    ' Le code suivant permet de capturer une image à partir d'une caméra (la webcam par défaut mais une modification du code permet
    ' d'utiliser une caméra extérieure.
    ' L'exécutable, le classeur Excel et l'image doivent être dans le même répertoire. Autrement le code doit être adapté en conséquence.
    ' L'exécutable et le code original ont été proposés par batchloaf (Ted Burke) le 7 janvier 2013 sur son blog :
    ' https://batchloaf.wordpress.com/2013/01/07/running-commandcam-from-excel-using-vba/
    ' Le code ci-dessous en est simplement une traduction en français avec ajout de quelques commentaires 
     
        Dim ValeurRetour
     
        ' Assurez-vous que le répertoir est celui où se trouve votre classeur Excel :
        ChDir (ActiveWorkbook.Path)
     
        ' Supprimez le fichier image s'il y en a un :
        If Dir("image.bmp") > "" Then ' Opération effectuée si un fichier est déjà présent dans le répertoire
            Kill ("image.bmp") ' Suppression du fichier image
        End If
     
        ' La boucle while suivante permet de s'assurer que le fichier image a bien été supprimé :
        While Dir("image.bmp") > ""
        Wend
     
        ' Capture de la nouvelle image :
        ValeurRetour = Shell("CommandCam.exe", vbNormalFocus) ' Exécution avec affichage de la console
        ' ValeurRetour = Shell("CommandCam.exe", vbHide) ' Exécution sans affichage de la console
        ' Par défaut, la source est la webcam mais il est possible de mofifier la ligne de manière à utiliser une caméra externe
     
        ' La boucle suivante permet de s'assurer que l'image a bien été sauvegardée dans le répertoire :
        While Dir("image.bmp") = ""
        Wend
     
        ' Court délai après la sauvegarde afin de s'assurer que l'opération soit terminée avant une nouvelle action :
        Application.Wait (Now + TimeValue("00:00:01"))
     
        ' Chargement de l'image capturée et sauvegardée dans l'objet image "Image1" de la première feuille (Feuil1) :
        Feuil1.Image1.Picture = LoadPicture("image.bmp") ' Rafraîchissement de l'objet image
        ' Cette ligne cause une erreur s'il n'y a pas d'objet image initialement dans la feuille
        ' Si l'objet image est dans une autre feuille ou qu'il ne s'appelle pas "Image1" modifier le code en conséquence
    End Sub
    Le code original (proposé par batchloaf) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub SnapshotButton_Click()
        Dim RetVal
     
        ' Make sure the current directory is set to the one
        ' where the Excel file is saved
        ChDir (ActiveWorkbook.Path)
     
        ' First, delete image file if present
        Kill ("image.bmp")
     
        ' Now, wait until image file is definitely gone
        While Dir("image.bmp") > ""
        Wend
     
        ' Capture new image
        RetVal = Shell("CommandCam.exe", vbNormalFocus)
     
        ' Wait until image file is definitely there
        While Dir("image.bmp") = ""
        Wend
     
        ' Short delay to let new file finish saving
        Application.Wait (Now + TimeValue("00:00:01"))
     
        ' Load new image into image object on spreadsheet
        Image1.Picture = LoadPicture("image.bmp")
    End Sub
    Le répertoire (capture ici du post de blog de batchloaf) :
    Nom : excelcam_folder.jpeg
Affichages : 1797
Taille : 91,7 Ko

    La console qui apparaît (si vbNormalFocus) :
    Nom : Capture (2)_LI.jpg
Affichages : 1808
Taille : 757,7 Ko
    J'ai ajouté le point rouge au niveau de la ligne qui la fait apparaître.

    J'ai pris cette exécutable car je manque de temps pour en créer un moi-même mais cela est tout à fait possible.

    Lien vers la licence d'utilisation.

    Lien vers le blog de batchloaf

    Lien de l'exécutable proposé par batchloaf

    Et son code source en C++

    La page GitHub de batchloaf (Ted Burke)

    J'ai encore des adaptations à faire pour remplir mon cahier des charges. La solution technique que je choisis de développer (basée) sur l'exécutable mis à disposition par Ted Burke alias batchloaf est une feuille excel contenant un objet image que je rafraîchirai avec la capture image du microscope à chaque saisie de pression : à chaque incrément de pression, l'utilisateur entrera la pression puis après 5 secondes, l'objet image sera actualisé avec l'image capturé. L'utilisateur contrôlera la présence d'une goutte en surface du matériau. En l'absence de goutte il répétera ces opérations, sinon la valeur de pression correspondra à la valeur du WEP (Water Entry Pressure) c'est-à-dire à la pression limite d'étanchéité à l'eau du matériau.

    En ce qui concerne ma question initiale, je considère que la réponse est "avec Excel et VBA cela est soit impossible, soit très compliqué". Je note donc mon problème comme "résolu" et je remercie Menhir de sa réponse. Pour ceux que la question intéresse je propose l'alternative ci-dessus et si je parviens à une solution aboutie je la posterai éventuellement

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    quand on cherche on trouve
    meme sur DVP tu a des tuto pour WIA si tu avais bien cherché tu aurais trouvé comment capturer une image a partir de la webcam
    sans parler des exemples que l'on trouve partout sur le net exemple ce fichier que j'avais trouvé il y a quelques années
    difficile de faire mieux c'est sur un plateau
    tu n'a pas besoins de commandcam.exe
    Fichiers attachés Fichiers attachés

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    quand on cherche on trouve
    Tu supposes que je n'ai pas cherché. C'est difficile de le prendre bien même si tu as sans doute de bonnes intentions. De plus effectivement j'ai cherché et j'ai trouvé puisque j'ai même pu proposer une solution...
    Je prends cela comme une maladresse de ta part que je pardonne. Par ailleurs je te remercie de ta réponse.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    tiens voila un exemple avec utilisation de directshow la encore une fois pas besoins de ".exe" externe
    d'ailleurs celui la est beaucoup plus performant
    je ne suis pas maladroit du tout j'ai pour habitude de dire ce que je pense il m'a fallu moins d'une minute pour le trouver sur google celui la

    j'ai tapé "capture cam vba dynamique" boom!!!! il y en a a foison

    si il ne fonctionne pas je te donne une version réecrite pour W8 et excel2010 en ".xlsm"
    l'avantage de celuli la c'est que tu a vraiment le LIVE de la cam en temps reel et le tout roulement de tambour (DANS UN SIMPLE CONTROL IMAGE!!!)

    de rien c'est cadeau
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Premièrement je suis bien placé pour savoir que j'ai bien cherché. Que je n'aie pas trouvé y compris pour des raisons que tu ne peux pas comprendre c'est autre chose. Il y a bien des chercheurs qui finalement ne trouvent pas ce qu'ils cherchent et pourtant ils ont bel et bien cherché. Je te donne une raison simple pour laquelle on peut ne pas trouver : utilisation de mauvais mots clefs due au fait que je suis dans un domaine dans lequel je ne suis pas expert par exemple. Autre raison, je suis stagiaire et comme je suis bosseur et que mon tuteur est exigeant et que je veux une bonne note je suis amené à faire des journées parfois de dix à douze heures ce qui implique deux choses : je n'ai pas l'esprit le plus clair possible quand j'enchaîne ce genre de journées et si j'ai besoin de faire ces heures c'est que j'ai aussi une grosse quantité de travail à côté donc si en 2h je n'ai pas trouvé je ne peux pas me permettre de passer plus de temps à chercher sous peine de ne pas remplir mes objectifs.

    Deuxièmement, prétendre mieux savoir qu'un autre ce qu'il fait c'est assez grave.

    Troisièmement, moi aussi je dis ce que je pense mais avant de dire quelque chose je m'assure que c'est pas n'importe quoi. Et je suis désolé mais prétendre mieux savoir qu'un autre ce qu'il fait je te le répète c'est grave et je te le dis par pure sympathie. Chacun a ses manières de faire et de penser bonnes ou mauvaises. Toi tu vas te poser une question que je vais trouver d'une simplicité incroyables et je vais te dire que tu aurais pu réfléchir une seconde. Ou alors tu vas mettre 2h à faire une tâche que moi je fais en 30 minutes et je vais te dire "bah alors on se branle les couilles". Et si je te dis ça tu ne le prendras pas bien car tu auras fait ce que tu pouvais et donc moi comme j'y ai pensé avant je ne vais pas te froisser en prétendant mieux savoir que toi ce que tu peux faire en une minute. Car bien évidemment il y a aussi des choses que moi je vais chercher et trouver en une minute et que toi tu trouveras une un mois.

    Donc encore une fois on peut dire ce que l'on pense et je le fais mais on ne peut pas prétendre mieux savoir que quelqu'un ce qu'il fait ou pense...

    Je vais te donner un exemple réel qui vient du boulot. Mon tuteur est très exigeant et trouve toujours que ses collaborateurs ne vont pas assez vite (et prétend également qu'en une minute telle et telle chose est faisable etc). En discutant avec le technicien, que j'ai vu à l'oeuvre et ce qu'on lui demande c'est pas l'affaire de minutes mais d'heures, et il trouve effectivement que mon tuteur lui donne l'impression de rien branler et qu'un jour il va plus en pouvoir et que ça va mal se passer.

    Donc tu vois ce que untel peut faire c'est pas ce que tel autre peut faire. Comme mon collègue, si ton supérieur si tu as une hiérarchie te demande un travail de trois jours à faire pour l'heure et te demande toutes les heures si c'est bientôt fini je doute très fortement que tu le prennes bien.

    Donc encore une fois chacun à ses manières de faire, ses manières de penser, ses sensibilités et chacun est plus ou moins efficace dans un tel domaine, plus efficace dans tel autre domaine, moins efficace dans tel autre domaine et c'est pour cela que dire ce que tu pense ne doit pas être ça.

    Je ne te donne pas de leçon. Mais je te donne matière à réflexion. Car si tu as des collaborateurs au-dessus ou en-dessous de toi dans la hiérarchie avec des compétences et des formations différentes des tiennes tu ne peux pas leur dire "moi je le fais en x minutes" sans créer des frustrations et des rancoeurs qui vont dégrader ton relationnel.

    Cela méritait d'être dit.

    Cela dit je te remercie chaleureusement de ton aide et du temps que tu veux bien consacrer à m'aider. La solution que tu me proposes semble être plus simple et plus complète que celle que j'avais trouvé. Je vais travailler sur ce code qui nécessitera toutefois de nombreuses adaptations à commencer par la lisibilité du code. Si j'arrive à une solution aboutie et claire je la partagerai sur le forum.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut RE
    je te ferais une adaptation hyper simple demain de ma version que j'utilise perso c'est un derivé de la version 1 que je t'ai donné et en plus contrairement a la version1 que je t'ai donné elle a le LIVE aussi comme la version 2
    je m'en sert pour faire des photocopies de document administratif que l'on peut pas scanner(bande metalique et autre joyeuseté)

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci beaucoup pour ton aide ! Au passage en cherchant sur le forum je suis retombé sur un de tes posts qui m'a donné une idée sympa pour voir ce que je fais dans le classeur : mettre une image de la zone de la feuille de calcul que je mets à jour. D'ailleurs maintenant que j'y pense je pourrais faire la même chose pour l'ajout d'un graphe.

    A part ça j'ai trouvé qu'il était possible d'afficher le UserForm en plein écran dans le dossier de SilkyRoad j'ai donc fait cette adaptation aussi. ¨Pour l'instant ça donne ça :

    Nom : Capture.JPG
Affichages : 1841
Taille : 181,9 Ko

    Je vais aussi ajouter un timer

    Merci encore et bonne fin de soirée

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re pour le plein ecran
    re
    pour le plein ecran de ton userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'afficher le userform 1 mode fenetre ,2 mode reduit , 3 plein ecran
    Private Declare Function showw Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    'trouver le handle
    Private Declare Function fwa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    'application des modification
    Private Declare Function SWLG Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    '
    dim Handle&
    Private Sub UserForm_Activate()
        Handle = fwa(vbNullString, Me.Caption)
        SWLG Handle, -16, &H94CF0080    'on ajoute les boutons reduire et agrandir et le handing resize(l'élasticité)
        showw Handle, 3'plein ecran
    End Sub

  12. #12
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci beaucoup

    J'avais utilisé directement ce code de SilkyRoad :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Activate()
        With Me
            .StartUpPosition = 3
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0
            .Top = 0
        End With
    End Sub
    Cela fonctionne, mais le UserForm n'est pas adapté à l'écran (la croix déborde dans le coin supérieur droit).

    Ton code ci-dessous est plus complexe. Avec mon niveau je le prends comme une boîte noire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    'afficher le userform 1 mode fenêtre ,2 mode réduit , 3 plein écran
    Private Declare Function showw Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    'trouver le handle
    Private Declare Function fwa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    'application des modification
    Private Declare Function SWLG Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    '
    dim Handle
     
    '=================================================================================================
     
    Private Sub UserForm_Activate()
        Handle = fwa(vbNullString, Me.Caption)
        SWLG Handle, -16, &H94CF0080    'on ajoute les boutons réduire et agrandir et le handing resize (l'élasticité)
        showw Handle, 3 'plein écran
    End Sub
    Sinon, je n'ai pas réussi à coller les feuilles de calcul dans mon UserForm. J'ai beaucoup vu d'allusions au code pastepicture de Stephen Bullen mais il est incompréhensible pour moi. J'ai également vu des solutions ayant recours au contrôle spreadsheet mais je ne le trouve pas dans les outils supplémentaires de ma boîte à outils (j'ai depuis trouvé le contrôle spreadsheet)

    Par la suite j'aimerais également pouvoir choisir la caméra source sans cliquer sur le bouton paramètres mais je ne sais pas à quoi correspondent les variables dans le code...

    Voilà où j'en suis :
    Nom : Capture.JPG
Affichages : 1740
Taille : 92,5 Ko

    (ajout d'un contrôle spreadsheet et d'un contrôle chartspace dont je veux me servir pour voir ce que je fais sur la feuille depuis mon userform)

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    Ton code ci-dessous est plus complexe. Avec mon niveau je le prends comme une boîte noire :
    teste le dans un userform vierge tu verra

    je fini d'enlever mes données perso du mien et je te le donne pour la cam
    tu tourne sur quoi au fait comme version excel 2016 c'est ca ?

  14. #14
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci encore ^^

    "Famille et Petite Entreprise 2013" en fait (PC de l'entreprise). Office 365 sur mon PC perso. J'utilise donc les deux versions. Je n'ai pas de problème de compatibilité entre les deux. En tout cas pas jusqu'à maintenant.

    teste le dans un userform vierge tu verra
    Je vois quelle ligne fait quoi mais en ce qui concerne la déclaration des fonctions et les arguments comme -16 pas du tout.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    -16 c'est le style classique de fenetre (caption,bouton)c'est la constante de style sans caption se serait -20
    allez je l'ai suffisement netoyé

    voici un model dérivé du miens avec la version 1 que tu utilise mais avec le live en direct comme la version 2 avec directshow

    je vais regarder pour la boite de dialog de choix de périférique
    tu a un bouton enregistrer sous avec a coté un mini apercu de la capture tout en laissant le live rouler
    j'ai panser que comme c'estait pour capturer des object avoir le live pour bien cadrer serait un plus
    tu ne devrait pas avoir de difficulté a adapter il est largement plus simple codé comme ca
    Fichiers attachés Fichiers attachés

  16. #16
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci beaucoup !

    C'est excellent ! Très très gentil de ta part. Cela m'aide beaucoup. J'ai essayé rapidement et je trouve ta macro géniale. Le bouton paramètre renvoie une erreur de variable non définie. Je vais regarder tout ça de plus près dans une heure ou deux (j'ai pas dormi de la nuit tellement ces histoires de code tournaient dans ma tête du coup j'ai passé la nuit sur mon PC au lieu de dormir donc il faut que je m'aère un peu).

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re pour le bouton parametre
    re
    oui j'ai oublié de remettre la contante video source
    r'ajoute la dans les constante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Const WM_CAP_DLG_VIDEOSOURCE = 1066                 'pour afficher les parametre
    j'y suis allé un peu fort au coupecoupe dans le code

    tu sera pas le premier a passer une nuit blanche sur un code

  18. #18
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci

    Oui c'est sûr mais cela dit il y a d'autres manières de passer des nuits blanche

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re 3 eme version plus economique,rapide ,et preview haute qualité
    je vais te rendre dingue
    j'ai bosser comme un dératé
    en meme temps ca me fait réviser un peut les apis windows
    il se trouve que l'on peut se passer d'une boucle do loop pour coller l'image dans le control image je suis bete pourquoi je n'y ai pas pensé avant
    l'api capCreateCaptureWindowA sert a crer une fentre de capture
    alors contrairement a avant on la laisse visible mais on lui enleve la caption(tu verra et comprendra mieux le (-16 et -20)

    une fois la caption enlevée on la fait adopter par le userform avec l'api setparent
    et on la positionne avec setwindowpos
    et voila tu a ton carré preview sans faire tourner de macro (UC/memoire économisée)CA DIVISE PAR 3 A PEUT PRES CHEZ MOI la puissance utilisée mon compteur W7 ne decolle plus
    pour la capture on ne copie plus on a une constante pour ca Private Const WM_CAP_FILE_SAVEDIB = 1049 que l'on utilisera avec l'api sendmessage by val ... as long pour une capture d'image(pas de video)
    et pour le coup !! roulement de tambour plus besoins de module tout est dans le userform
    voila un jolie petit preview de webcam avec bouton de capture tout simple

    voila la petite bete
    Pourquoi je n'y ai pas pensé avant bon sang de bon soir
    Fichiers attachés Fichiers attachés

  20. #20
    Membre habitué
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Points : 173
    Points
    173
    Par défaut
    Merci beaucoup

    Moi aussi j'ai pas mal bossé dessus et en visuel ça donne ça :
    Nom : Capture.JPG
Affichages : 1751
Taille : 106,3 Ko

    Du côté du code, j'ai ajouté un bouton de capture pour la photo et j'ai fait quelques ajustements car je me suis rendu compte que sans activer le live il n'y avait pas d'aperçu mais avec si. L'aperçu est donc maintenant la capture (soit la copie d'un instantané du live soit une photo de la webcam directement). J'ai aussi renommé tous les objets afin de rendre le code le plus clair possible pour un tiers.

    Voici ma version du code (encore quelques modifications à faire et les commentaires à ajouter).

    Je vais également tracer un graphe dans le UserForm pour suivre ce que je fais mais concernant le ChartSpace j'ai vraiment du mal à comprendre comment le coder.

    Je vais regarder ta version. Merci encore pour ton aide énorme !
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/07/2018, 17h35
  2. [XL-2010] Copier coller en VBA un fichier depuis une feuille Excel sur un ordinateur dans un smartphone.
    Par RANDOLOISIRS dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/12/2015, 16h52
  3. [XL-2007] copier une feuille excel d'une instance excel à une autre
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/03/2012, 00h44
  4. [EG] Ecrire dans les cellules d'une feuille Excel depuis SAS
    Par MDsas dans le forum Outils BI
    Réponses: 12
    Dernier message: 15/12/2011, 18h35
  5. Faire appel à un autre fichier excel depuis une feuille excel
    Par dammswell dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/10/2009, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo