Excel supprimer des cellules quand je supprime une forme qui leur est associee

Résolu
charluche Messages postés 57 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 10 novembre 2009 - 2 sept. 2007 à 15:48
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 - 17 sept. 2007 à 11:41
Bonjour a tous,
je suis actuellement face a un probleme avec vba et pour ne rien vous cacher je n'y connais rien a ce langage. En fait ma macro dessine dans un premier temps une forme puis inscrit dans des cellules des inforations relatives a cette forme. Dans ce sens la ca marche tres bien, en revanche, si je supprime la forme precedement dessinee, les informations relatives restent. Je souhaiterai que mes infrmations et que mes informations relatives soient remontees d une ligne. Exemple, si je supprime la 11eme forme, il faudrait que d12 et e12 soient supprimees et que les informations relatives a la 12eme forme soient maintenant dans la cellule d12 et d12.
J espere etre assez claire dans mon explication...
Dans tous les cas je vous remercie pour votre interet.
Charluche.
PS voici mon code:

Sub colis()
    Static Ligne As Long


    ' Ajout de titres pour coordonnées
    Range("D1:E1") = Array("Hauteur", "Poids")
    ' Cellule de reference
    Range("C1").Select
    ' Initialisation des compteurs    Ligne (Ligne + 1): Colonne 1


    ' Informations sur le conteneur
    Longueur = InputBox("Longueur du conteneur en metre, si vous ne connaissez pas la longueur exacte, tapez 1 et ajustez manuellement avec les poignees.", "Longueur du conteneur", "1")
    Largeur = InputBox("Largeur du conteneur en metre, si vous ne connaissez pas la longueur exacte, tapez 1 et ajustez manuellement avec les poignees.", "Largeur du conteneur", "1")
    Hauteur = InputBox("Hauteur du conteneur en metre, cette hauteur sera automatiquement ponderee du coefficient 2/3 pour le calcul du KG.", "Hauteur du conteneur")
    Poids = InputBox("Poids du conteneur en tonnes.", "Poids du conteneur")
    ActiveCell.Offset(Ligne, Colonne) = Hauteur
    ActiveCell.Offset(Ligne, Colonne + 1) = Poids
   
    ' Dessin de la forme
    Set myDocument = Worksheets(1)
    With myDocument.Shapes
        .AddShape msoShapeRectangle, 5, 5, Longueur, Largeur
    End With
    Set myDocument = Nothing


End Sub

24 réponses

JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
14 sept. 2007 à 17:37
Bonsoir,
Remplace ton code dans Thisworkbook - Pourquoi l'avoir mis à ce niveau et ne pas avoir inséré un module ? - par celui ci
En rouge les lignes que j'ai ajouté. Le mot de passe doit être changé - si nécessaire - dans la feuille d'abord pour que le code fonctionne

Avant de lancer ce code :
   - Sélectionner toute la feuille puis dévérouiller toutes les cellules
   - Sélectionner toutes les cellules à Vérouiller et dans Format/Cellule/Protection faire que cel soit
   - Sélectionner tous les objets qui doivent être vérouiller et vérifier dans Format/.../Protection que cela soit
Moi j'ai testé, cela fonctionne comme une horloge de chez Lip (d'avant guerre)

Concernant la fonction attribué au bouton RAZ je ne suis pas persuadé du résultat dans la mesure ou ClearContent n'efface que le contenu mais conserve le nom de la cellule ... c'est pourquoi j'avais codé la suppression ... Le risque c'est le télescopage des nom de boite existant lors de la création ...
Et puis c'est pas propre 

Voilà ... Voilà ... Bonne fin de semaine

Sub CreationBoite()
  Dim Lg, Cl, cd, ce
  cd = InputBox("Longueur du conteneur en metre, si vous ne connaissez pas la longueur exacte, tapez 1 et ajustez manuellement avec les poignees.", "Longueur du conteneur", "1")
  ce = InputBox("Largeur du conteneur en metre, si vous ne connaissez pas la longueur exacte, tapez 1 et ajustez manuellement avec les poignees.", "Largeur du conteneur", "1")
ActiveSheet.Unprotect ("password")
  ActiveSheet.Shapes.AddShape(msoShapeRectangle, 20, 20, cd * (0.631) * 28.3464, ce * (0.639) * 28.3464).Select
Selection.Locked = False
  Range("NombreDeBoites") = Range("NombreDeBoites") + 1
  Selection.Name = "Boite" & Range("NombreDeBoites")
  Lg = Range("Hauteur").End(xlDown).Row + 1
  If Lg > 65536 Then Lg = 2
  Cl = Range("Hauteur").Column
  Cells(Lg, Cl) = InputBox("Hauteur du conteneur en metre, cette hauteur sera automatiquement ponderee du coefficient 2/3 pour le calcul du KG.", "Hauteur du conteneur")
  ActiveWorkbook.Names.Add Name:="Boite" & Range("NombreDeBoites") & "_Hauteur", RefersToR1C1:=Cells(Lg, Cl)
  Cl = Range("Poids").Column
  Cells(Lg, Cl) = InputBox("Poids du conteneur en tonnes.", "Poids du conteneur")
  ActiveWorkbook.Names.Add Name:="Boite" & Range("NombreDeBoites") & "_Poids", RefersToR1C1:=Cells(Lg, Cl)
ActiveSheet.Protect "password", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Cliquer "Réponse Acceptée" Quand La Réponse Est OK
JML. Partageons notre savoir et nos acquis
0
charluche Messages postés 57 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 10 novembre 2009
14 sept. 2007 à 18:12
Merci encore JML,
pour ce qui est de rentrer le code dans le thisworkbook, c est par pure incompetence. en revanche la touche RAZ elle sert au cas ou je supprime une forme par reflexe avec la touche delete, ca permet de ne pas devoir oter la protection etc. Je suis d accord que ce n'est pas tres joli mais bon... Sinon, ca fonctionne bien si ce n est que si je supprime la forme avec le bouton supprime, les valeur ne sont plus effacees automatiquement. Je pense que tu as du faire ca pour donner une utilite a mon bouton raz (il n est la qu en secours!). Enfin je vais regarder de mon cote si je ne peux pas bidouiller de mon cote sans saccager ton travail.
Encore merci et bon W.E.
Charluche.
0
charluche Messages postés 57 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 10 novembre 2009
17 sept. 2007 à 11:37
Bonjour JML,
voila, je pense que tout fonctionne maintenant impecable, merci beaucoup pour ton aide. La derniere modif supprime tout comme il faut, encore felicitations et encore merci.
Charluche.
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
17 sept. 2007 à 11:41
Ce fur un véritable plaisir
JML

0