Ellipse

JclSimon

XLDnaute Nouveau
Bonjour à chacune et chacun!

D'un fichier Excel 2003 je souhaiterais extraire les infos contenues dans les Ellipses ou Ovales pour les reporter en valeur.

Pour faire simple, vous trouverez un exemple ci-joint.

Merci!

JclSimon
 

Pièces jointes

  • TEST_07B SV .xls
    25 KB · Affichages: 79
  • TEST_07B SV .xls
    25 KB · Affichages: 86
  • TEST_07B SV .xls
    25 KB · Affichages: 86

JclSimon

XLDnaute Nouveau
Bonjour!

La valeur à retenir est la valeur contenue dans l'Ellipse.
Chaque valeur contenue doit se retrouver sous la cellule qui précède l'Ellipse.
Une fois cette opération réalisée, l'Ellipse et son contenu sont à effacer.

JclSimon
 

Pièces jointes

  • TEST_07B SV .xls
    25 KB · Affichages: 70
  • TEST_07B SV .xls
    25 KB · Affichages: 69
  • TEST_07B SV .xls
    25 KB · Affichages: 63

mromain

XLDnaute Barbatruc
Re : Ellipse

Bonjour JclSimon,


Voici un code à adapter :
VB:
Sub test()
Dim laShape As Shape
    
    'boucler sur toutes les formes de la feuille
    For Each laShape In ActiveSheet.Shapes
        'si la forme est de type "ellipse"
        If laShape.AutoShapeType = 9 Then
            'écrire dans la cellule (décalée de 2 lignes et -2 colonnes par rapport à l'ellipse) la valeur saisie dans l'ellipse
            laShape.TopLeftCell.Offset(2, -2).Value = laShape.TextFrame2.TextRange.Characters
            'effacer l'élipse
            laShape.Delete
        End If
    Next laShape
End Sub
Par contre, il ne fonctionnera jamais correctement sur ton fichier (tel que tu nous l'a fourni) car chaque ellipse n'est pas à la même position par rapport à la cellule qu'elle renseigne.

Je te laisse faire les tests.

a+
 
Dernière édition:

JclSimon

XLDnaute Nouveau
Re : Ellipse

Mromain re-bonjour!

Pourrais-tu me faire parvenir "Ta" macro liée au fichier que j'ai transmis?

Merci!

Jean Claude

NB. J'ai pris note du décalage entre les Ellipses et le lieu de récupération.
I - Recopier les valeurs des Ellipse et effacer les Ellipses et leur contenu sera déjà un bel effort.
II - J'effectuerai manuellement les déplacements ou, je pense qu'il sera temps ensuite d'ajuster la position de chacune des cellules.
 

CISCO

XLDnaute Barbatruc
Re : Ellipse

Bonjour à tous
Bonjour!

La valeur à retenir est la valeur contenue dans l'Ellipse.

JclSimon

Ca j'avais bien compris. J'espérais qu'il y ai une relation mathématique par rapport au contenu, ou à la position, à la colonne... qui expliquait pourquoi tu choisisais telle valeur et pas telle autre.

Toi, en pratique, pourquoi places tu une ellipse sur telle valeur, et pas sur telle autre, ou reçois tu les fichiers avec des ellipses déja positionnées ?

@ plus
 

JclSimon

XLDnaute Nouveau
Re : Ellipse

Cisco re-bonjour!

Toi, en pratique, pourquoi places tu une ellipse sur telle valeur, et pas sur telle autre, ou reçois tu les fichiers avec des ellipses déja positionnées ?

Je reçois les fichiers avec des ellipses déjà positionnées.

Bonne réception!

JclSimon
 

JclSimon

XLDnaute Nouveau
Ellipses dans Excel

Bonjour à chacune et chacun!

Je suis toujours à la recherche d'une solution.

En résumé: Je reçois des fichiers excel (2003) dont une partie de l'information est matéialisée en Ellipse.

Je souhaite récupérer les informations (chiffres) contenues dans chaque Ellipse pour les utiliser ensuite comme base de RechercheV.

Comment puis-je en automatique récupérer ces informations?

Merci à l'avance de votre aide.

JclSimon
 

Pièces jointes

  • TEST_07B SV .xls
    34 KB · Affichages: 62
  • TEST_07B SV .xls
    34 KB · Affichages: 75
  • TEST_07B SV .xls
    34 KB · Affichages: 71

JclSimon

XLDnaute Nouveau
Re : Ellipse

:)Bonjour chacune et chacun!

Je souhaitais vous faire part d'une réponse positive reçue de Pierrejean, que je remercie de nouveau ici:)

Sub test()
Dim laShape As Shape
'boucler sur toutes les formes de la feuille
For Each laShape In ActiveSheet.Shapes
'si la forme est de type "ellipse"
If InStr(laShape.Name, "Oval") <> 0 And laShape.Height > 0.1 Then
'écrire dans la cellule (décalée de 2 lignes et -2 colonnes par rapport à l'ellipse) la valeur saisie dans l'ellipse
'laShape.TopLeftCell.Offset(2, 0).Value = laShape.TextFrame2.TextRange.Characters
laShape.Select
laShape.TopLeftCell.Offset(2, 0).Value = Selection.Characters.Text
'effacer l'élipse
laShape.Delete
End If
Next laShape
End Sub

Heureux d'avoir croisé des Downloadiens et 'Diennes et d'être sur Downloads, je vais dès maintenant, à cause de Pierrejean, me mettre au travail!

Je profite de cette réponse pour remercier également Mromain et CISCO :)

JclSimon


A bientôt!
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 644
dernier inscrit
MOLOKO67