> Tous les forums > Forum Bureautique
 Rechercher l'ensemble des zones de texte dans une plage de cellulesSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Marmotte18
  Posté le 01/08/2024 @ 13:43 
Aller en bas de la page 
Astucien

Bonjour,

Dans la plage de 104 cellules : A14:D26 (52 cellules) et G14:J26 (52 cellules), je peux avoir plusieurs zones de texte et aucun autre objet.
Dans cette plage, ces zones ne sont pas forcément au même endroit d'une fois sur l'autre.

Je souhaiterais retrouver automatiquement toutes ces zones de texte et procéder à leurs suppressions.

NB : il n'est pas question de supprimer les autres zones de texte et/ ou objets en dehors de cette plage.

Merci par avance si vous pouvez m'aider.



Modifié par Marmotte18 le 01/08/2024 16:16
Publicité
nainconnu.bis
 Posté le 01/08/2024 à 14:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

si rien d'indiscret dans ta page

si tu nous faisais parvenir une copie de ta page par cjoint pour que ce soit plus explicite car demande plus que vague !.

.

.

.

.

.

Marmotte18
 Posté le 01/08/2024 à 16:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

nainconnu.bis

Ci-joint une extraction de mon fichier Excel maître : https://www.cjoint.com/c/NHbodzAjG0P

Dans la plage de cellules A14:D26 : 4 zones de texte (cases bleues foncées et cases noires). Ce sont des objets amovibles et non une coloration de la cellule correspondante
Dans la plage de cellules G14:J26 : 4 zones de texte (cases noires) donc amovibles

Je souhaiterais disposer d'une macro permettant de supprimer ces 8 zones de texte sans modifier le contenu des cellules correspondantes.

NB : en aucun cas, il faut détruire les zones de texte extérieures à l'union de ces 2 plages.

Gaby-Jo
 Posté le 01/08/2024 à 16:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Je souhaiterais retrouver automatiquement toutes ces zones de texte et procéder à leurs suppressions.

Pour faire cela automatiquement il faut utiliser du code.

Pour cela, quel tableur utilises tu ?

Marmotte18
 Posté le 01/08/2024 à 18:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Gaby-Jo

Je suis dans le sous-forum Excel donc mon tableur est Excel => il faut donc faire du VBA !

Dudu2
 Posté le 01/08/2024 à 18:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Dans un Module... A ré-indenter après le formatage PC Astuces

Option Explicit

Private Const RangeDelete = "A14:D26,G14:J26"

Sub DeleteTextBoxes()
Dim Shape As Shape

With ActiveSheet
For Each Shape In .Shapes
If Shape.Type = msoTextBox Then
If Not Intersect(Shape.TopLeftCell, .Range(RangeDelete)) Is Nothing Then
Shape.Delete
End If
End If
Next Shape
End With
End Sub



Modifié par Dudu2 le 01/08/2024 18:27
Marmotte18
 Posté le 02/08/2024 à 07:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Merci Dudu, je vais regarder ta réponse extrêmement précise avec beaucoup d'attention. Je reviens te voir plus tard pour te tenir informé.

Marmotte18
 Posté le 02/08/2024 à 07:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Dudu, tu es un Chef ! Cela fonctionne remarquablement bien mais malheureusement, je ne suis pas suffisamment fort pour tout comprendre.

Par exemple :

Que veut dire : For Each Shape In .Shapes
Est-ce : pour chaque forme de toutes les formes de la feuille de calcul ?

Que veut dire : If Shape.Type = msoTextBox Then
Est-ce : si la forme est une zone de texte alors

Que veut dire : If Not Intersect(Shape.TopLeftCell, .Range(RangeDelete)) Is Nothing Then
Est-ce : ???

Quant au reste, j'ai tout compris

Dudu2
 Posté le 02/08/2024 à 09:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Que veut dire : For Each Shape In .Shapes
Est-ce : pour chaque forme de toutes les formes de la feuille de calcul ?

Oui

Que veut dire : If Shape.Type = msoTextBox Then
Est-ce : si la forme est une zone de texte alors

Oui, même si "zone de texte" n'est pas très approprié, je dirais plutôt une "forme" ou un "contrôle de formulaire" de type TextBox.

Que veut dire : If Not Intersect(Shape.TopLeftCell, .Range(RangeDelete)) Is Nothing Then

- .TopLeftCell est une propriété d'une Shape et représente la cellule où est placée la partie haute et gauche (le coin haut gauche pour une TextBox) de la Shape.
- Intersect() est une fonction Excel qui retourne un Range composé de l'intersection de 2 à 30 Ranges (ici 2 seulement comme souvent).
En l'occurrence l'intersection entre la TopLeftCell de la Shape et le Range que tu as défini comme étant celui à analyser.
Si ça rend "Nothing" (rien) c'est que la TopLeftCell n'est pas dans le Range défini.
Si ça rend pas "Nothing", c'est à dire la cellule TopLeftCell, c'est que la Shape est à supprimer.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Boîtier externe Orico USB C 3.1 pour disque dur ou SSD SATA 2.5 pouces
9,99 € 13,99 € -29%
@Amazon
Clé USB Sandisk Ultra Dual Drive 256 Go à double connectique USB 3.2 Type A et C (400 Mo/s)
35,99 € 55 € -35%
@Amazon
Lot de 3 boites de 125g de sardines à la sauce tomate by Amazon
2,69 € 4,35 € -38%
@Amazon
Inhalateur Beurer IH 15
24,99 € 40 € -38%
@Amazon
Console Asus ROG XBOX Ally X (7 pouces FHD 120 Hz IPS, Ryzen Z2 Extreme, 24 Go RAM, SSD 1 To, Windows 11)
829,99 € 899 € -8%
@Amazon
Cable USB C vers USB C Nylon Tressé Aioneus 2 mètres, 100W
4,99 € 7,99 € -38%
@Amazon

Sujets relatifs
Vba effacer une plage de cellules dans plusieurs feuilles
recherche dans une chaîne comme dans une plage de cellules
saisie matricielle d'une série de valeurs dans une plage de cellules
Calculer date en fonction d'une valeur dans une plage de cellules
Définir une Plage de cellules dans une macro
plage de cellules variable dans une fonction
Changer la couleur prédéfinie d'une sélection de texte dans word
image dans une zone de texte
Comment supprimer des pages vides dans une feuille de calcul
supprimer des lignes dans une base de données pour des doublons
Plus de sujets relatifs à Rechercher l''ensemble des zones de texte dans une plage de cellules
 > Tous les forums > Forum Bureautique