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. 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
    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
        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. 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