VBA
Résolu
Farfadet88
Messages postés
7780
Statut
Membre
-
Farfadet88 Messages postés 7780 Statut Membre -
Farfadet88 Messages postés 7780 Statut Membre -
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?
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?
5 réponses
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) :
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...
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
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
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 :
et retente
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
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?
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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question