Problème de stockage d'une image sur excel à parti

Résolu
Bonjour,
je demande votre aide, mon probéme c'est que je n'arrive pas a stocker l'image importé à partir de mon userform à une cellule d'excel..
je vous remercie de m'aider..




2 réponses

Résumé de la discussion

Le problème porte sur le stockage d'une image importée via un userform dans une cellule d'Excel en utilisant VBA, avec des complications liées à la gestion des variables et de l'exécution des boutons. La solution essentielle consiste à déclarer une variable publique, par exemple dans Module1, comme image ou Variant, afin de conserver l'image entre les procédures qui manipulent l'image. En complément, l'utilisation d'Option Explicit et de messages d'erreur clairs permet d'identifier rapidement les lignes problématiques et d'éviter les tests avec des expressions non reconnues comme Active. D'autres éléments utiles apparaissent, comme le fait que les boutons nommés exécutent les procédures correspondantes et que la suppression des tests avec =Active évite des erreurs d'exécution.

Bobot (l’IA à votre service)
  1. Bonjour,
    Impossible de "stocker" une image dans une cellule, li faut passer par une Shape
    ce code devrait vous aider

    Sub Insert_img()
        ActiveSheet.Pictures.Insert("Chemin et nom du fichier image").Select
        With Selection.ShapeRange
            .Left = ActiveCell.Left
            .Top = ActiveCell.Top
        End With
    End Sub
    0
    1. Contributeur
      bonsoir, as-tu pu appliquer ceci?
      0
    2. le chemin n'est pas précis, image= applicatin.GetFileName
      et la cellule est aussi précise
      0
    3. Contributeur
      @nouhaaa1995exemple avec une image non précisée et une cellule précisée:
      Option Explicit
      
      Sub insertimage()
      Dim pct As Picture, image As String
      image = Application.GetOpenFilename()
      Set pct = ActiveSheet.Pictures.Insert(image)
      pct.ShapeRange.Left = Cells(8, 8).Left
      pct.ShapeRange.Top = Cells(8, 8).Top
      pct.ShapeRange.Width = Cells(8, 8).Width
      pct.ShapeRange.Height = Cells(8, 8).Height
      End Sub
      0
    4. j'ai essayé ceci mais il donne un erreur
      0
    5. Contributeur
      @nouhaaa1995l'erreur est-elle secrète? ou bien l'as-tu corrigée?
      0
  2. Contributeur
    peux-tu expliquer ton contexte, pour que nous puissions mieux t'aider? qui a écris le code que tu utilises? pourquoi veux-tu le modifier? quelle est ton expérience en VBA?
    0
    1. en fait je suis débutante sur vba
      c'est la première fois que je l'utilise, l'idée de l'interface est la mienne, le programme que j'utilise c'est moi qui la fait .
      0
    2. j'ai un classeur à remplir avec des données, et pour automatiser cette opération j'ai crée un userform, parmi ces données il y a des images qui doivent être importé de l'ordi
      et l'enregistrement de tous ces données doit être chargées sur une même ligne.

      c'est pour cela l'enegistrement de ces données s'effectue par un command button pour éviter le décalage
      0
    3. c'est résolu je dois déclarer dans module1

      public image as variant
      0
    4. Contributeur
      @nouhaaa1995super! peux-tu marquer comme résolu, via la roue dentée à droite du titre?
      0