Recuperer les donnees des Textboxes et Shapes

  • Initiateur de la discussion Initiateur de la discussion Amigo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Amigo

XLDnaute Occasionnel
Bonjour Le Forum,

Pour mon premier fil, je viens solliciter vos lumieres pour un probleme qui m'arrache les cheveux et Dieu sait s'il m'en reste.
Je recois tous les mois un fichier excel avec des donnees qui sont presentees dans des Shapes, je souhaite recuperer ces donnees dans des cellules comme dans la feuille 1 pour pouvoir les traiter. Voir fichier joint (feuille 1). j'espere que j'ai bien expose mon probleme.
Merci pour votre Aide
Salutations
Amigo
 

Pièces jointes

Dernière édition:
Re : Recuperer les donnees des Textboxes et Shapes

Hola Amigo, bienvenue sur le forum,

Je ne sais pas qui a eu l'idée de fabriquer un fichier pareil.

Se servir d'objets à la place des cellules Excel c'est vraiment très astucieux.

Mais alors faut pas s'étonner qu'il y ait quelques problèmes...

Bon courage !
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Job75, le forum,

Comme tu dis, quelle idee de se servir des objets 😡. On fait les donnees viennent d'un logiciel (je ne le connais pas) qui les transfert vers excel avec des objets.
Les donnees que je dois m'en servir sont representer par les traits epaisses noires qui sont le debut et la fin de chaque Rd (round).

Salutations

Amigo
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Amigo ...

une petite macro du genre

Sub extraire()

Dim Forme As Shape
Dim NumLigne As Long

On Error Resume Next

NumLigne = 10

For Each Forme In Worksheets("Sheer2").Shapes

Cells(NumLigne, 1).Value = Forme.Name
Cells(NumLigne, 2).Value = Forme.TextFrame.Characters.Text
NumLigne = NumLigne + 1

Next Forme

End Sub

Va te récupérer les contenus des objets shapes ...
Mais les noms des objets shapes en dehors des
TEXT_UTIL_NO_x et TEXT_HOUR_x
ne sont pas vraiment exploitables pour récupérer des heures ...

Il resterait bien la possibilité de créer un programme qui pourrait extraire d'après la position des shapes (propriété Top et Left) mais là ... y'a du boulot !

Bon courage
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Job75, Stef09, le Forum

Je te remercie Stef09 de s'interesser a mon probleme par contre il y a un souci avec la macro. Elle liste les noms des Texteboxes dans la colonne A et les donnees dans la Colonne B et qui sont inexploitables. voir fichier joint.

Merci par Avance

Salutations

Amigo
 

Pièces jointes

Re : Recuperer les donnees des Textboxes et Shapes

Oui ... effectivement il faut activer la sheet1 avant ... ce sera plus clair.

Worksheets("Sheet2").activate

Mais c'est effectivement l'exploitation des données qui va poser problème ... il faudrait un prog franchement plus complexe pour arriver à les exploiter ...
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Stef09, le Forum,
Merci pour ta reponse, c'est un peu plus lisible.
J'ai essaye de changer ta macro en imbriquant 2 boucles : la premiere procede ligne par ligne et la deuxieme colonne par colonne pour avoir les donnees classees dans le meme ordre que les originaux.
Code:
For Each Ws
        For Ligne = 1 To derniere ligne
            For Colonne = 1 To derniere colonne
               Instructions 
            Next Colonne
        Next Ligne
Next Ws
Mais comme ma connaissance en VBA tend vers zero, je n'ai pas reussi.
Je ne sais pas s'il faut proceder comme ca.
Juste pour Info dans mon fichier j'en ai au moins 15 feuilles a traiter.

Merci par avance

Amigo
 
Dernière édition:
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour le fil,

A ma connaissance, il n'est pas possible de savoir si un "controle" se trouve sur tel ou tel cellule en bouclant sur les cellules.
Il faut que tu boucles sur les controles comme te le propose Stef09 dans son premier message. Le soucis est que cette liste n'a aucune logique pour l'exploiter.
Et visiblement tu ne peux rien faire pour changer ça.
Pas simple ton affaire et vu ton niveau...
Bon courage.
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Skoobi, Stef09, le Forum,

Merci Skoobi pour ta reponse.
Justement suite a la connaissance de mon niveau en Excel que je suis venu sur ce forum pour demander de l'aide car je sais qu' Il y a de la matiere grise ici.
Comme tu dis
Code:
il n'est pas possible de savoir si un "controle" 
se trouve sur tel ou tel cellule en bouclant sur les cellules.

1- Est ce qu'il y a un moyen de boucler sur les noms des Textboxes. J'ai fait un essai avec l'enregistreur de macro et j'ai obtenu :
Code:
ActiveSheet.Shapes("Text Box 154").Select
    ActiveSheet.Shapes("Text Box 155").Select
    ActiveSheet.Shapes("Text Box 167").Select
    
    ActiveSheet.Shapes("Text Box 165").Select
    ActiveSheet.Shapes("Text Box 166").Select
    ActiveSheet.Shapes("Text Box 169").Select

2- Existe-t-il une fonction qui compte les objets comme par exemple celle qui compte les cellules
du genre "n = Application.Count(Sheets("Sheet2").Shapes)"

Mais vu mon niveau je n'ai pas pu aller trop loin.

Merci par avance
Salutations
Amigo
 
Dernière édition:
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Skoobi, Stef09, le Forum,


2- Existe-t-il une fonction qui compte les objets comme par exemple celle qui compte les cellules
du genre "n = Application.Count(Sheets("Sheet2").Shapes)"


Merci par avance
Salutations
Amigo


Re bonjour,

le premier message de Stef09 liste toutes les "formes" se trouvant sur la feuille.
Il me vient une idée: lister ces "formes" et indiquer également leur emplacement sur une autre feuille comme sur la feuille forme du fichier joint. Le but serait que lorsque tu boucles dans chaque cellule de chercher l'adresse de la cellule dans la feuille "forme" pour récupérer la forme attachée. Le soucis est que plusieurs "formes" se trouvent sur la même cellule...
 

Pièces jointes

Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Skoobi, Stef09, le Forum,

Merci pour ta reponse.
J'essaye d'isoler les objets dont le nom est "Text Box #" en incluant une condition dans la macro dans le but de recuperer les Infos utiles seulement:
Code:
Dim Forme As Shape
Dim NumLigne As Long
[COLOR="Red"]Dim m As Integer[/COLOR]

On Error Resume Next
[COLOR="red"]m = 100[/COLOR]
NumLigne = 10
With Sheets("Forme")
  For Each Forme In Worksheets("Sheet2").Shapes
  [COLOR="red"]If Forme.Name = "Text Box" & m Then[/COLOR]
  
    .Cells(NumLigne, 1).Value = Forme.Name
    .Cells(NumLigne, 2).Value = Forme.TextFrame.Characters.Text
    .Cells(NumLigne, 3).Value = Forme.TopLeftCell.Address
    NumLigne = NumLigne + 1
    
[COLOR="red"]End If[/COLOR]
  Next Forme
 [COLOR="red"] m = m + 1[/COLOR]End With
End Sub

Mais ca ne marche pas.

Salutations

Amigo
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Pierrot93, Skoobi, Stef09, le Forum,

Merci Pierrot93 pour ta repose ca marche.
Par contre comment je peux faire pour recuperer seulement quelques types de d'objets seulement en imbriquant des IF
Code:
Sub extraire()

Dim Forme As Shape
Dim NumLigne As Long

On Error Resume Next

NumLigne = 10
With Sheets("Forme")
  For Each Forme In Worksheets("Sheet2").Shapes
    
    If Forme.Name Like "TEXT_ORDER_*" Then
    
    .Cells(NumLigne, 1).Value = Forme.Name
    .Cells(NumLigne, 2).Value = Forme.TextFrame.Characters.Text
    .Cells(NumLigne, 3).Value = Forme.TopLeftCell.Address
    NumLigne = NumLigne + 1
  
         If Forme.Name Like "TEXT_UTIL_NO_*" Then
            NumLigne = 10
                .Cells(NumLigne, 4).Value = Forme.Name
                .Cells(NumLigne, 5).Value = Forme.TextFrame.Characters.Text
                .Cells(NumLigne, 6).Value = Forme.TopLeftCell.Address
            NumLigne = NumLigne + 1
      
                If Forme.Name Like "Text Box*" Then
                    .Cells(NumLigne, 7).Value = Forme.Name
                    .Cells(NumLigne, 8).Value = Forme.TextFrame.Characters.Text
                    .Cells(NumLigne, 9).Value = Forme.TopLeftCell.Address
                    NumLigne = NumLigne + 1
                End If
         End If
  End If
  
  Next Forme
End With
End Sub

j'ai essaye de le faire comme ca mais ca ne marche pas

Salutations

Amigo
 
Re : Recuperer les donnees des Textboxes et Shapes

Re

si j'ai bien compris, modifies peut être ainsi :

Code:
Option Explicit
Sub extraire()
Dim Forme As Shape
Dim NumLigne As Long
NumLigne = 10
With Sheets("Forme")
  For Each Forme In Worksheets("Sheet2").Shapes
    If Forme.Name Like "TEXT_ORDER_*" Then
        .Cells(NumLigne, 1).Value = Forme.Name
        .Cells(NumLigne, 2).Value = Forme.TextFrame.Characters.Text
        .Cells(NumLigne, 3).Value = Forme.TopLeftCell.Address
        NumLigne = NumLigne + 1
    ElseIf Forme.Name Like "TEXT_UTIL_NO_*" Then
        NumLigne = 10
        .Cells(NumLigne, 4).Value = Forme.Name
        .Cells(NumLigne, 5).Value = Forme.TextFrame.Characters.Text
        .Cells(NumLigne, 6).Value = Forme.TopLeftCell.Address
        NumLigne = NumLigne + 1
    ElseIf Forme.Name Like "Text Box*" Then
        .Cells(NumLigne, 7).Value = Forme.Name
        .Cells(NumLigne, 8).Value = Forme.TextFrame.Characters.Text
        .Cells(NumLigne, 9).Value = Forme.TopLeftCell.Address
        NumLigne = NumLigne + 1
    End If
  Next Forme
End With
End Sub

bon après midi
@+
 
Re : Recuperer les donnees des Textboxes et Shapes

Bonjour Pierrot93, Skoobi, Stef09, le Forum

D'abord permettez moi de presenter mes excuses de repondre un peu tard mais vacances de paques obligent, Bonnes fetes de paques a vous tous meme si c'est un peu en retard.

Pierrot93, Merci Beaucoup pour ta reponse ca marche bien, par contre j'essaye de boucler sur colonne par colonne du haut en bas pour avoir les donnees comme dans la feuille 2 mais sans reussite. Idem en essayant de transposer les resultats sans reussite.

Merci par avance

Amigo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Excel Sharepoint
Réponses
5
Affichages
731
Retour