Voir le flux RSS

Eric KERGRESSE

Excel Copier coller une ligne ou une cellule contenant une image

Noter ce billet
par , 23/02/2020 à 12h20 (82 Affichages)
'
Problématique :

Des lignes contenant des images sont à copier-coller d'une feuille à une autre. Bien entendu, les images situées ne sont pas collées.

Solution proposée :

Si les images occupent une cellule, il est possible de mettre le titre ou le nom de l'image dans la cellule préalablement. Lorsque la ligne aura été copiée dans un autre onglet, il suffira d'aller chercher l'image dans l'onglet d'origine.

Pour identifier les images dans les cellules en utilisant la propriété Title de l'image. Ici les images sont situées dans une seule colonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Option Explicit

Sub ReferencerLesImages()

Dim I As Integer
Dim ColonneReference As Long, ColonneImage As Long
Dim MaLigne As Variant


    With ActiveSheet
        If .Shapes.Count = 0 Then Exit Sub
        ColonneReference = 1: ColonneImage = 3
        For I = 1 To .Shapes.Count
            With .Shapes(I)
                 .Title = IdentificationCellule(ColonneReference, ColonneImage, .Top)
                 'Debug.Print I & " : " & .Title
                 MaLigne = Split(.Title, " ")
            End With
            .Cells(CLng(MaLigne(2)), ColonneImage) = Join(MaLigne, " ")
        Next I
    End With
    
End Sub


Function IdentificationCellule(ByVal ColonneReference2 As Long, ByVal ColonneImage2 As Long, ByVal DistanceVerticale As Double) As String

Dim J As Long, DerniereLigne As Long

   IdentificationCellule = ""
   With ActiveSheet
        DerniereLigne = .Cells(.Rows.Count, ColonneReference2).End(xlUp).Row
        For J = 1 To DerniereLigne
            With .Cells(J, ColonneReference2)
                 If DistanceVerticale > .Top - 2 And DistanceVerticale < .Top + 2 Then  ' -2 +2 à ajuster
                    IdentificationCellule = "Image ligne " & J
                    Exit Function
                 End If
            End With
        Next J
   End With

End Function
Pour sélectionner l'image :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub SelectionnerUneImage(ByVal ShImage As Worksheet, ByVal TitreImage As String)

Dim I As Integer

    With ShImage
         If .Shapes.Count = 0 Then Exit Sub
         For I = 1 To .Shapes.Count
             With .Shapes(I)
                  If .Title = TitreImage Then .Select
             End With
         Next I
    End With

End Sub
[/QUOTE]

Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Viadeo Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Twitter Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Google Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Facebook Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Digg Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Delicious Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog MySpace Envoyer le billet « Excel Copier coller une ligne ou une cellule contenant une image » dans le blog Yahoo

Catégories
Sans catégorie

Commentaires