VBA

Résolu
Bonjour,

Une personne m'a créé un code permettant d'aller chercher une image dans un dossier.
Ce dernier marchait sur un poste or je viens de changer de pc et la macro suivante ne marche plus:

Private Sub CommandButton2_Click()
Sheets("données").Select
Range("L1").Select
Selection.ClearComments

With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = CurDir
.Filters.Clear
.Filters.Add Description:="Images", Extensions:="*.jpg", Position:=1
.Title = "Choix de l'image"
If .Show = -1 Then TheFile = .SelectedItems(1) Else TheFile = 0
End With
If TheFile = 0 Then
MsgBox ("aucun fichier image choisi")
[L1] = "..."
Sheets("accueil").Select
Exit Sub
End If
Range("l1").AddComment
[L1].Comment.Shape.Fill.UserPicture TheFile
[L1] = "Photo"
Range("l1").Comment.Visible = True
Range("l1").Comment.Shape.Select True
Selection.ShapeRange.ScaleWidth 3.77, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 4.57, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleWidth 0.94, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.07, msoFalse, msoScaleFromTopLeft
Sheets("accueil").Select
End Sub

Le bug vient de la partie soulignée en gras: Erreur de compilation: Projet ou bibliothèque introuvable

Pouvez-vous m'aider?
--
Après Open Office essayez Opin Offece :P
Configuration: ...

5 réponses

  1. Nickel ça marche.

    Par contre petite question qui n'a aucun rapport.

    Dans toutes mes macros auparavant, lorsque je mettais par exemple:

    [A1]= "Valeur"

    Ca marchait

    Alors que maintenant VBA me lance le débogeur et je suis obligé de mettre à la place

    Sheets ("Données").Range ("A1").Value = "Valeur"

    Cela vient du fait qu'il ne reconnaît plus la feuille concernée dans ma macro?
    0
    1. Modérateur
      franchement... je ne sais pas. Ton explication est plausible. Je ne me suis jamais penché sur ce souci bien que je m'y sois fait prendre également.

      Tant que ça fonctionne...
      Problème résolu?
      0
  2. Modérateur
    Que signifie TheFile? Que vient il faire ici?
    A mon avis c'est une variable, variable qui n'a pas été déclarée
    Ajoute ceci en début de macro :
    Dim TheFile as String

    et retente
    0
    1. Problème maintenant avec le terme TheFile dans ma ligne de code. Même message d'erreur

      With Application.FileDialog(msoFileDialogFilePicker)
      .AllowMultiSelect = False
      .InitialFileName = chemin
      .Filters.Clear
      .Filters.Add Description:="Images", Extensions:="*.jpg", Position:=1
      .Title = "Choix de l'image"
      If .Show = -1 Then TheFile = .SelectedItems(1) Else TheFile = 0
      End With
      0
      1. Modérateur
        Re-
        Sur Excel, CurDir retourne le répertoire courant. Peut être y a t'il un souci avec ce chemin.
        Tente une "approche indirecte" du style (en gras les modifs apportées à ton code) :

        Private Sub CommandButton2_Click() 
        Dim chemin as string
        chemin = "C:\Tartempion\ces_documents\blablabla\fonctionnaire"
        Sheets("données").Select 
        Range("L1").Select 
        Selection.ClearComments 
        
        With Application.FileDialog(msoFileDialogFilePicker) 
        .AllowMultiSelect = False 
        .InitialFileName = chemin 
        etc etc...
        
        0