Insertion d'images automatisée

Liyah

XLDnaute Nouveau
Bonjour,

Je suis nouvelle dans l'utilisation du VBA pour automatiser mes opérations sur Excel. Je suis confrontée à un problème qui me semblait de premier abord assez simple...
Je m'explique:

J'ai importé 39 fichiers textes dans 39 feuilles différentes. Cela fonctionne bien.
Je souhaite maintenant importer dans chacune de ces feuilles une image différente. Chacune de mes images est numérotée de 1 à 39 et doit être inséré dans sa feuille associée.
Je n'arrive pas à programmer cela, serait ce possible d'avoir quelques pistes pour m'aider...

Merci par avance

Pour importer mes fichiers textes j'avais utilisé ce code: (je n'arrive malheureusement pas à l'adapter a mon insertion d'images)

Dim MainWbk As String
Dim lngCount As Long

MainWbk = ActiveWorkbook.Name

' Ouvrir la fenetre de dialogue pour sélectionner les fichiers à ouvrir
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show

' Affichage des chemins de chaque fichier selectionné
Application.ScreenUpdating = False

' Début de la boucle
For lngCount = 1 To .SelectedItems.Count

' Ouverture du fichier texte dans une feuille excel
Workbooks.OpenText Filename:=.SelectedItems(lngCount), _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=True, _
OtherChar:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _
Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _
TrailingMinusNumbers:=True

Sheets(1).Move After:=Workbooks(MainWbk).Sheets(Workbooks(MainWbk).Sheets.Count)
Next lngCount
End With
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re : Insertion d'images automatisée

Bonsoir Liyah et bienvenue sur XLD :)

En supposant que les feuilles sont nommées 1 2 3 etc.

Code:
Sub InsertImage()
Dim i, x As Integer, nom As String, ws As Worksheet, cel As Range, rep, img

ActiveSheet.DrawingObjects.Delete
For i = 0 To 29
x = i + 1
nom = x
   For Each ws In Worksheets
If nom <> "" And ws.Name = nom Then
ws.Activate
  rep = ThisWorkbook.Path & "\" & nom & ".gif"
  Set img = ActiveSheet.Pictures.Insert(rep)
  Set cel = ws.Range("f2")
  img.Top = cel.Top
  img.Name = nom
  End If
Next ws
  Next i
End Sub

Si Les feuilles sont nommées "Feuil1" - "Feuil2" etc; renomme les images comme le nom des feuilles.
Ensuite, change nom = x par nom = "Feuil" & x
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
339

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 058
dernier inscrit
florentLP