Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

pbm avec if

  • Initiateur de la discussion arno
  • Date de début
A

arno

Guest
bonjour
j ai un probleme avec l operateur if. je n'arrive pas a poser 2 conditions. je souhaite eliminer les comboboxes qui n ont pas de nom particulier:


Dim combb As Object

With ActiveSheet
For i = .Shapes.Count To 1 Step -1
Set combb = .Shapes(i)
If Not combb.Name= 'el_type' & i Or 'mesh_type' Then combb.Delete
Next i
End With

que dois je faire. merci d'avance
 

Hervé

XLDnaute Barbatruc
re arno

je te donnes une macro, pour effacer des graphiques, et tu penses pouvois l'utiliser pour effacer des cbx placés sur une feuille, tu doutes de rien

essayes comme ceci :




parcontre, j'espère que sur ta feuille il n'a q que des combobox ?

salut
 

vekmort

XLDnaute Occasionnel
Bonjour,

Je suis béat face au 2 noms suivants : 'el_type' & i Or 'mesh_type' ! Qu'est-ce que cela signifie... C'est un nom générique pour les objets de la feuille ?

Sinon, pour deux conditions avec 'Or' au milieu, il faut peut-être rajouter :

If Not combb.Name= 'el_type' & i Or Not combb.Name= 'mesh_type' Then...

Bonne continuation,

vekmort
 
A

arno

Guest
il n'y a pas que des comboboxes sur ma feuilles il y a aussi des graphs mais ce n est pas grave.je vais voir si je peux m en sortir avec ca.
encore merci
 
A

arno

Guest
oui ce sont des noms generiques mais je n ai pas que 2 conditions. je vais voir si cela marche avec 'or not' ou 'and not' merci bcp pour le conseil. a plus
 
A

arno

Guest
rebonjour
je n'arrive pas a faire marcher le code. le code efface toutes les combobox. j ai tenté d'incrémenté dans l'ordre croissant mais cela ne marche pas car alors il saute certanes boites.
est ce que cela pourrait etr du a la definition du delete.
merci d'avance
 

Hervé

XLDnaute Barbatruc
re arno

tous les codes que je donne sur le forum sont testés (sinon, je le précise).

donc ce code fonctionne au regard de ma compréhension du problème, pourrais-tu nous fournir un exemple d'une de tes feuilles contenant les combobox.

salut
 
A

arno

Guest
voila le dossier. il est tres depouillé mais j espere que vous pourrez en faire quelques choses.
la partie interessante est dans la feuilles 2, special parameters.
encore merki
 
A

arno

Guest
VOICI MON FICHIER. je ne peux pas vous envoyé autre chose l'espace disponible est insuffisant et si je le depouille il ne veut plus rien dire. je ne sais pas si vous pourrez en tiré quelques chose.




Sub mesh_type_Change()

If mesh_type.Value = 'constant elements length' Then

Sheets('special parameters').Select
Sheets('special parameters').Range('B26:G46').Value = ' '
Sheets('special parameters').Range('B26:G46').Select
Selection.Delete Shift:=xlUp
Sheets('special parameters').Select


Dim ctrl As OLEObject
With ActiveSheet
For i = .OLEObjects.Count To 1 Step -1
Set ctrl = .OLEObjects(i)
If Not ctrl.Name = 'el_type' Then
ctrl.Delete
End If
Next i
End With


Sheets('meshing').Visible = True
Sheets('meshing').Select
Sheets('meshing').Range('B12:E22').Copy
Sheets('special parameters').Select
Range('B12:E22').Select
ActiveSheet.Paste

Else
Sheets('special parameters').Select
Sheets('special parameters').Range('B26:G46').Value = ' '
Sheets('special parameters').Range('B26:G46').Select
Selection.Delete Shift:=xlUp


End If

End Sub
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Arno, Vekmort, Hervé, bonsoir à toutes et à tous

Puisque Hervé ne semble pas revenir, je me permets de te proposer ce code (je pense qu'il ne m'en voudra pas :

Sub mesh_type_Change()
'
Dim ctrl As OLEObject
Dim i As Integer
'

  Sheets('special parameters').Select
  Range('B26:G46').Delete Shift:=xlUp

  If mesh_type.Value = 'constant elements length' Then

    With ActiveSheet
      For i = .OLEObjects.Count To 1 Step -1
        Set ctrl = .OLEObjects(i)
        If Not Left(ctrl.Name, 7) = 'el_type' Then
          ctrl.Delete
        End If
      Next i
    End With

    With Sheets('meshing')
      .Visible = True
      .Range('B12:E22').Copy _
            Sheets('special parameters').Range('B12:E22')
    End With
  End If

End Sub

Tiens nous au courant.

A+
 
A

arno

Guest
je suis desole mais ca ne marche toujours pas. meme si je n y connais pas grand chose je n ai pas l impression que le probleme vienne de vos code. lorsque j execute mon code toutes les comboboxes sont elimine meme 'el_type' celle qu on veut garder. je pense que j n'arrive pas a les renommer.que je les renomme en utilisant le bouton propriete ou en passant par le vba cela ne marche jamais.
je vous remercie quand meme pour vos effort. a plus
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde


merci charly

arno, en pièce jointe, un fichier comprenant 5 combobox, les deux premieres ont été renommées : 'el_type' et 'mesh_type'.

en appuyant sur le bouton qui déclenche la premiere macro que je t'ai donné, seuls les 3 dernieres combobox sont supprimées.

Est ce que ceci pourrait t'aider ?

sinon, peux tu simplement nous placer en pièce jointe, un fichier ne comprennant que tes controles et en nous disant ceux que tu veux supprimer.

salut [file name=arno_20060404111331.zip size=7533]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/arno_20060404111331.zip[/file]
 

Pièces jointes

  • arno_20060404111331.zip
    7.4 KB · Affichages: 13

Discussions similaires

Réponses
9
Affichages
113
Réponses
6
Affichages
377
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…