Zones de texte : localisation et récupération de contenu

  • Initiateur de la discussion Initiateur de la discussion DoubleZero
  • 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 !

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Lorsqu'un fichier comporte des zones de texte, je souhaiterais, d’abord, si cela est possible 😱, repérer leur emplacement et récupérer leur contenu.

En l’absence de zone de texte, un message indiquant "Aucune zone de texte" (par exemple) pourrait être affiché.

En revanche, si zone(s) de texte il y a, le regroupement pourrait être effectué sur un onglet à créer et appelé « Zones de texte ».

Sur ledit onglet figureraient, alors, les données suivantes :

- nom des onglets concernés par la présence de zones de texte ;
- texte de chaque zone.

Enfin, une seconde macro pourrait, à la demande, supprimer l’ensemble des zones de texte.

J'espère ne pas avoir manqué de clarté 😕 et je vous remercie vivement pour votre aide 🙂.
 

Pièces jointes

Re : Zones de texte : localisation et récupération de contenu

Re-bonjour,

Pardon, Pierrot, je n'avais pas vu ton message #7.

MERCI BEAUCOUP 🙂, Efgé, cette fois-ci, ton fichier fonctionne parfaitement chez moi également !

C'est à n'y rien comprendre.

Serait-il possible, s'il te plaît, d'ajouter l'option "suppression de toutes les zones de texte" ?

Je vous remercie, Pierrot, Hippolite, Efgé, pour votre aide et vous souhaite une bonne soirée 🙂.
 
Re : Zones de texte : localisation et récupération de contenu

Re
Content que ça ai fini par tourner 🙂.
Si tu veux les supprimer à cgaque foi que tu récupère les textes :
VB:
Sub Recup_Zone_Text()
Dim F As Worksheet, Sh As Object, K&, TabloReport() As Variant, Var&
K = 0
For Each F In Worksheets
    If F.Name <> "Zones de texte" Then
        Var = 0
        For Each Sh In F.Shapes
            If Sh.Type = 17 Then
                Var = Var + 1
                K = K + 1
                ReDim Preserve TabloReport(1 To 3, 1 To K)
                TabloReport(1, K) = F.Name
                TabloReport(2, K) = Sh.TextFrame.Characters.Text
                'TabloReport(3, K) = Sh.Name
                Sh.Delete
            End If
        Next Sh
        If Var = 0 Then
            K = K + 1
            ReDim Preserve TabloReport(1 To 3, 1 To K)
            TabloReport(1, K) = F.Name
            TabloReport(2, K) = "Aucune zone de texte"
        End If
    End If
Next F
If K <> 0 Then Sheets("Zones de texte").Cells(4, 1).Resize(UBound(TabloReport, 2), UBound(TabloReport, 1)) = Application.Transpose(TabloReport)
End Sub

Si tu veux un code indépendant:
VB:
 Sub Recup_Zone_Text()
Dim F As Worksheet, Sh As Object
For Each F In Worksheets
    If F.Name <> "Zones de texte" Then
        For Each Sh In F.Shapes
            If Sh.Type = 17 Then
                Sh.Delete
            End If
        Next Sh
    End If
Next F
End Sub

Cordialement
 
Re : Zones de texte : localisation et récupération de contenu

Bonjour à toutes et à tous,

Si cela peut servir à d'autres personnes, je viens de trouver (enfin 🙄) ce qu'il convient d'ajouter au code, mentionné en message #5, afin d'obtenir un ajustement automatique des zones de texte :

Après :

Code:
.VerticalAlignment = xlTop

Insérer :

Code:
 .AutoSize = True

Bonne journée et à bientôt 🙂.
 
- 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

Retour