Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

Liyah

XLDnaute Nouveau
Re : Insertion d'images automatisée

Merci !
Je viens de tester cela fonctionne parfaitement !!!

Une dernière question, comment je pourrais m'améliorer en VBA? Des conseils?

Bonne journée,
 

Discussions similaires

Réponses
2
Affichages
347
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…