Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1109 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba Excel 97]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vba Excel 97]

n°1355758
benjamin51
Posté le 28-04-2006 à 10:18:25  profilanswer
 

bonjour
je voudrais faire une macro qui ajoute automatiquement a toute les cellule non vide d'une colonne une image en commentaire qui ai le meme nom que le contenu de chaque cellule.
g trouvé cette source mais je n'arrive pas a la faire fonctionner car je suis débutant en vba
 
Sub Macro2()
Dim nom$
For Each C In Selection
nom = C.Value
With C
.AddComment
.Comment.Shape.Fill.UserPicture ActiveWorkbook.Path & "\" & nom & ".jpg"
End With
Next
End Sub
 
si qqun pouvais me donner un petit coup de main ca serais super cool
merci d'avance

mood
Publicité
Posté le 28-04-2006 à 10:18:25  profilanswer
 

n°1356654
PGreg
Posté le 30-04-2006 à 00:30:37  profilanswer
 

Bonjour,  
 
  Le code si dessus est correcte, il faut seulement que tu vérifie que le chemin d' accès (activeworkbook.path) est bien celui de la photo. Et que la valeur de chaque cellule correspond bien à un nom (est ce bien ce que tu veux dire).
Ensuite, tu peux rajouter une ligne de code qui te séléctionne automatiquement la colonne active (Columns(ActiveCell.Column).Select) et une condition qui te fasse le trie des cellule vide ou pas (if not c="" then). En outre, ajoute un 'on error resume next' au début, car le débugger interrompera le programme à chaque fois que tu tomberas sure une cellule ayant déjà une comment.
 
 
 

n°1357543
benjamin51
Posté le 02-05-2006 à 08:30:56  profilanswer
 

bonjour,
j'ai réussi a faire marcher, merci beaucoup
j'ai une dernière petite question:
est ce que on peut faire automatiquement un redimensionnement du commentaire pour que les photos ne soit pas disproportionnées ??  

n°1357548
benjamin51
Posté le 02-05-2006 à 09:02:17  profilanswer
 

Une autre question qui ressemble bcp a la première.
je voudrais ajouter tjrs automatiquement dans les cellule non vide un lien hyper texte vers des pdf je voulais savoir si la source d'en haut est recupérable pour faire cela  
merci de me répondre
ca me serais très utile
merci

n°1358626
PGreg
Posté le 03-05-2006 à 14:10:40  profilanswer
 

Salut,  
 
Normalement, il n' y a pas de problème pour les liens hyper texte. Pour le rediemensionnement du commentaire, j' ai trouvé :  
 
ActiveCell.Comment.Shape.PictureFormat
 

n°1358782
benjamin51
Posté le 03-05-2006 à 16:16:03  profilanswer
 

merci de ton aide mais j'arrive pas a faire marche pictureformat
je sais pas ou l'inserer dans le code située dans le 1er msg...
je sais pas je dois ètre vraiment très nul :)
il faut ke je rajoute la ligne entière avant le end with ? g essayé ca marche pas.

n°1360760
PGreg
Posté le 06-05-2006 à 01:24:26  profilanswer
 

Bonjour,  
 
Tu devrais la placer après l' insertion de l' image (.Comment.Shape.Fill.UserPicture...).
Pour pictureformat, je n' ai pas accès au commande dependant de ce membre (Brightness, contarst, etc...).
J' ai essayé en faisant ceci :  
ActiveCell.Comment.Shape.PictureFormat=x
 
 Et de modifier la taille du commentaire avec width et height :  
ActiveCell.Comment.Application.Width/Height
Mais si ont arrive à obtenir la taille du commentaire de cette façon, ont arrive pas à la changer

n°1370402
benjamin51
Posté le 19-05-2006 à 11:27:19  profilanswer
 

bonjour tout le monde,
j'ai enfin réussi a faire ce que je voulais voila la source
Il y a qques modification que j'ai effectuer...
 
Sub ajoutImageCommentaire()
Dim Repertoire As String
Dim Rep As Variant
Dim C As Range
With Sheets("Appareils" )
On Error Resume Next
For Each C In Range("F1:F" & Range("F65536" ).End(xlUp).Row)
Repertoire = ActiveWorkbook.Path & "\Photos\" & Trim(C.Value) & ".jpg"
If Dir(Repertoire) <> "" Then
If Not C = "" Then
With C.Offset(0, -1)
.AddComment
.Comment.Shape.Fill.UserPicture Repertoire
.Comment.Visible = False 'Masque le commentaire
End With
Rep = ActiveWorkbook.Path & "\Photos\"
With C.Offset(0, -1).Comment.Shape
.Width = Val(dimensionsImage(Rep, Trim(C.Value) & ".jpg", 27))
.Height = Val(dimensionsImage(Rep, Trim(C.Value) & ".jpg", 28))
'les index 27 et 28 de la methode GetDetailsOf ,
'permettent de recuperer les dimensions de l'image...
'bien qu'ils soient indiqués comme "Not Used" dans l'aide Microsoft...
 
End With
End If
End If
Next
End With
End Sub
Public Function dimensionsImage(Chemin As Variant, nomImage As Variant, Itm As Integer)
Dim objShell As Object, strFileName As Object
Dim objFolder As Object
Set objShell = CreateObject("Shell.Application" )
Set objFolder = objShell.nameSpace(Chemin)
Set strFileName = objFolder.Items.Item(nomImage)
dimensionsImage = objFolder.getDetailsOf(strFileName, Itm)
Set objShell = Nothing
Set strFileName = Nothing
Set objFolder = Nothing
End Function


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba Excel 97]

 

Sujets relatifs
sous excel séparer les éléments d'une cellule selon un "/"RESOLU :comment générer un fichier excel depuis Cshell
convertir base de donnée excel en base de donnée SQLenvoyer une donnée dans excel depuis une textbox
[VBS] Organiser la sortie d'un script dans un tableau excelTextbox = cellule excel ?
Pb Import excelComment copier une feuille EXCEL sous ACCESS?
afficher la date au mois précédent sous excel[VBA] Suppression d'un graphique Excel
Plus de sujets relatifs à : [vba Excel 97]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR