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

Y

Yldie

Guest
Bonjour le forum,

Chers Xldnautes, je vous serais très reconnaissant de bien vouloir vous pencher sur mon pb qui pour vous ne devrait poser aucun souci.....🙂
Merci encore

YLDIE
 

Pièces jointes

Re : Shape Delete

Bonjour Yldie,

voici un exemple:

Code:
Sub delete()
  Dim Shp As Shape
  Dim C As Range, DerLig As Long
  DerLig = [A65536].End(xlUp).Row
  For Each C In Range("A2:A" & DerLig)
    If Range("B" & C.Row) = "" Then
      ActiveSheet.Shapes("Ellipse " & C.Row - 1).delete
    End If
  Next
End Sub

Si tu as besoin d'explication, n'hésite pas.
 
Re : Shape Delete

Merci SKOOBI,

seul hic, c'est que lorsque je remets un écrit, je retape "TAXI" et que j'exécute la macro, l'ellipse ne revient pas, aussi pourrais-tu me dire s'il est possible de créer un code permettant de supprimer (delete) les ellipses selon les conditions que j'ai formulé et a contrario de voir réapparaître ces mêmes ellipses si ces mêmes conditions sont à nouveau rempli.....? En tout cas, quel talent, je te remercie d'avance !!!

YLDIE 😀
 
Re : Shape Delete

Re,

je te suggeres de rendre l'ellipse invisible, ou pas, plutôt que de la détruire:

Code:
Sub delete()
  Dim Shp As Shape
  Dim C As Range, DerLig As Long
  DerLig = [A65536].End(xlUp).Row
  For Each C In Range("A2:A" & DerLig)
      ActiveSheet.Shapes("Ellipse " & C.Row - 1).Visible = Range("A" & C.Row) <> ""
  Next
End Sub
Edit: petite précision: le chiffre indiqué à la fin du nom de l'ellipse a un lien direct avec la ligne sur laquelle elle se trouve.
Exemple:

"ellipse 1" doit se trouver sur la ligne 2.
"ellipse 2" doit se trouver sur la ligne 3.
etc...
 
Dernière édition:
Re : Shape Delete

Re,

visiblement tu n'as pas lu mon edit:

Edit: petite précision: le chiffre indiqué à la fin du nom de l'ellipse a un lien direct avec la ligne sur laquelle elle se trouve.
Exemple:

"ellipse 1" doit se trouver sur la ligne 2.
"ellipse 2" doit se trouver sur la ligne 3.
etc...
Edit:
Voici un autre code qui ne tiens pas compte du nom des ellipses. Le code cherche la ligne sur laquelle se trouve l'ellipse:

Code:
Sub delete()
  Dim Shp As Shape
  Dim C As Range, DerLig As Long
  DerLig = [A65536].End(xlUp).Row
  For Each C In Range("A2:A" & DerLig)
    For Each Shp In ActiveSheet.Shapes
      If Shp.TopLeftCell.Row = C.Row Then Shp.Visible = Range("A" & C.Row) <> ""
    Next
  Next
End Sub
 
Dernière édition:
Re : Shape Delete

J'ai un dernier bug, au niveau du code : Erreur de compilation Projet ou bibliothèque introuvable [A65536]

Sub DELETER()
Dim Shp As Shape
Dim C As Range, DerLig As Long
DerLig = [A65536].End(xlUp).Row
For Each C In Range("J6:J22" & DerLig)
For Each Shp In ActiveSheet.Shapes
If Shp.TopLeftCell.Row = C.Row Then Shp.Visible = Range("J" & C.Row) <> ""
Next
Next
End Sub

Comment faire pour que ça marche !?!?!? Merci de bien vouloir m'aider pour ce pb

A bientôt....merci
 
Re : Shape Delete

Bonjour Yldie, Skoobi

A priori cette ligne devrait fonctionner sans problème :

Code:
DerLig = [A65536].End(xlUp).Row

par contre celle-ci :

Code:
For Each C In Range("J6:J22" & DerLig)

devrait être modifiée ainsi :

Code:
For Each C In Range("J6:J" & DerLig)

bonne journée
@+
 
Re : Shape Delete

Dernier souci et après ce sera parfait, une fois mes ellipses (visibles ou invisibles selon.....), je dois pouvoir copier celles visibles et les coller dans une autre feuille, mais là nouveau bug, ci-joint le code :

Sub Macro4()

Range("A1").Select
ActiveSheet.Unprotect ("YLDIE")
Sheets("roulement 1").Select
ActiveSheet.Shapes.Range(Array("Oval 7", "Oval 10", "Oval 11", "Oval 12" _
, "Oval 13", "Oval 14", "Oval 15", "Oval 16" _
, "Oval 17", "Oval 18", "Oval 19", "Oval 20" _
, "Oval 21", "Oval 22", "Oval 23", "Oval 24")).Select
😡
Selection.Copy
Sheets("scolaires").Select
ActiveSheet.Paste
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("K7").Select
End Sub

Ma question est donc la suivante, comment remplacer ce bout de code par une formule imparable qui va automatiquement sélectionner les ellipses visibles ?

Merci d'avance !!!!

Yldie
 
Re : Shape Delete

Bonjour,
Avec ce que je comprends (le principe a été donnée plus haut)
Code:
Sub copie()
Sub copie()
Dim Shp As Object
For Each Shp In ActiveSheet.Shapes
    If Shp.Visible = True And Shp.Name Like "Oval*" Then
    Shp.Copy
    Sheets("Feuil2").Activate
    Cells(x + 10, 1).Select
    Sheets("Feuil2").Paste
    x = x + 1
    End If
Next
End Sub
A+
kjin
 
Re : Shape Delete

Bonjour,
Là, il faudra être plus clair en décrivant précisément le principe !
Sélectionner un objet ne veut rien dire hormis si on click droit dessus
En outre, s'agit-il de copier tous les objets ou juste celui "sélectionné" (contradictions dans tes notes), la procédure vient-elle à la suite d'une autre, est-elle associée au bouton copier/coller...
A+
kjin
 
Re : Shape Delete

Merci beaucoup KJIN,

En fait le code qui fonctionne sur ma feuille et que j'ai pu transposer sur un classeur beaucoup plus fouillé est le suivant :

Sub copie()
Dim Shp As Object
Sheets("Feuil1").Select
For Each Shp In ActiveSheet.Shapes
If Shp.Visible = True And Shp.Name Like "Oval*" Then
Shp.Copy
Sheets("Feuil2").Activate
Cells(x + 10, 1).Select
Sheets("Feuil2").Paste
x = x + 1
End If
Next
End Sub

Vraiment super sympa à toi, ça m'aura permis de comprendre encore plus la signification de certains termes (complexe quand on débute le VBA....).
Great Thanks KJIN !!!!

YLDIE
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
290
Retour