Retour arrière état initial

alan5

XLDnaute Nouveau
Bonjour,
Je suis novice en VBA. Je découvre.
J'ai créé une rangée avec des croix à l'intérieur, placé un bouton de commande
d'effacement pour la rangée. Cela fonctionne.
J'ai placé un deuxième bouton de commande pour revenir à l'état initial avec les croix.
Que faut-il inscrire ?
Merci pour vos réponses.
 

Pièces jointes

  • Classeur1 ESSAI 001.xlsm
    19.3 KB · Affichages: 37
  • Classeur1 ESSAI 001.xlsm
    19.3 KB · Affichages: 37
  • Classeur1 ESSAI 001.xlsm
    19.3 KB · Affichages: 37

Staple1600

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonsoir à tous

Essaies ce petit exemple
Mets des X dans les cellules A1 à A10
Puis cliques sur le bouton 1
Code:
Dim t
Private Sub CommandButton1_Click()
t = Range("A1:A10").Value
Range("A1:A10") = Empty
End Sub
->Les X sont effacés

Ensuite cliques sur le bouton 2
Code:
Private Sub CommandButton2_Click()
Range("A1:A10").Value = t
End Sub
->Les X sont remis dans les cellules

PS
: Actuellement, je suis sous Excel 2003, donc ne peut ouvrir ta PJ, d'où mon petit exemple ;)
 

alan5

XLDnaute Nouveau
Re : Retour arrière état initial

J'ai testé, çà marche pour l'effacement mais pas pour la remise des croix.
Il se peut que j'ai fait une mauvaise manip, étant novice dans Excel.
J'ai modifié en fonction de ma rangée D10 / U10.
Cordialement.
 

Pièces jointes

  • Classeur1 ESSAI 002.xlsm
    20 KB · Affichages: 31

ROGER2327

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonsoir à tous.


Un autre code permettant de conserver plusieurs contenus effacés :​
Code:
Option Explicit
Dim v(9)

Private Sub CommandButton1_Click()
Dim i%
  For i = UBound(v) To 1 Step -1: v(i) = v(i - 1): Next
  With Range("D10:U10")
    v(0) = .Value
    .ClearContents
  End With
End Sub

Private Sub CommandButton2_Click()
Dim i%
  Range("D10:U10").Value = v(0)
  For i = 1 To UBound(v): v(i - 1) = v(i): Next: v(i - 1) = Empty
End Sub


Bonne nuit.


ℝOGER2327
#7622


Vendredi 13 Haha 142 (Bienheureuse Fenouillard, sainte famille - fête Suprême Quarte)
27 Vendémiaire An CCXXIII, 9,9281h - piment
2014-W42-6T23:49:39Z
 

Pièces jointes

  • Classeur1 ESSAI 001.xlsm
    30.1 KB · Affichages: 37
  • Classeur1 ESSAI 001.xlsm
    30.1 KB · Affichages: 29
  • Classeur1 ESSAI 001.xlsm
    30.1 KB · Affichages: 41
Dernière édition:

alan5

XLDnaute Nouveau
Re : Retour arrière état initial

Bonsoir,
Effectivement j'avais oublié le t ! Çà marche.
Par contre, j'ai créé deux rangées pour essai, deux boutons pour chaque rangée, appliqué les codes
mais le retour initial en rangée 1 applique les croix de la rangée 2.
Comme je suis novice, coincé.
Merci pour votre aide.
 

Pièces jointes

  • Classeur1 ESSAI 004.xlsm
    22.4 KB · Affichages: 35

Staple1600

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonsoir à tous

Comme je le disais précedemment
PS: Actuellement, je suis sous Excel 2003, donc ne peut ouvrir ta PJ, d'où mon petit exemple ;)
je ne peux ouvrir que des fichiers *.xls

Donc je passe la main à mes petits camarades de jeux
Sinon au pif
Il suffit de créer deux arrays (Tableaux)
Code:
Dim ta
Dim tb
Private Sub CommandButton1_Click()
ta = Range("A1:A10").Value
Range("A1:A10") = Empty
End Sub
Private Sub CommandButton2_Click()
Range("A1:A10").Value = ta
End Sub
Private Sub CommandButton3_Click()
tb = Range("C1:C10").Value
Range("C1:C10") = Empty
End Sub
Private Sub CommandButton4_Click()
Range("C1:C10").Value = tb
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonsoir à tous.

À alan5 : Dommage que le message #4 vous ait échappé. Sur cette base, on peut en écrire en rafale pour pas cher.


ℝOGER2327
#7626


Samedi 14 Haha 142 (Exhibition de la Daromphe - fête Suprême Quarte)
28 Vendémiaire An CCXXIII, 9,7364h - tomate
2014-W42-7T23:22:03Z


P.s. : pièce jointe supprimée : voir le message suivant.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonjour à tous.


Je corrige une erreur dans l'affectation des boutons du classeur du message #8. J'en profite pour fournir une version .xls à l'usage de ceux qui (bonjour Staple1600 !) ne peuvent pas ouvrir les classeurs .xlsm.
Voici le code :​
Code:
Option Explicit
Dim PilePdDd(10, 1 To 7) 'Dix niveaux de stockage pour 7 plages.

Private Sub Efface(j%, r$)
Dim i%
  For i = UBound(PilePdDd) To 2 Step -1: PilePdDd(i, j) = PilePdDd(i - 1, j): Next: PilePdDd(0, j) = r
  With Range(r): PilePdDd(1, j) = .Value: .ClearContents: End With
End Sub

Private Sub Rappelle(j%)
Dim i%
  Range(PilePdDd(0, j)).Value = PilePdDd(1, j)
  For i = 2 To UBound(PilePdDd): PilePdDd(i - 1, j) = PilePdDd(i, j): Next: PilePdDd(i - 1, j) = Empty
End Sub

Private Sub Effacement_1_Clic()
  Efface 1, "D10:U10"
End Sub

Private Sub État_initial_1_Clic()
  Rappelle 1
End Sub

Private Sub Effacement_2_Clic()
  Efface 2, "D11:U11"
End Sub

Private Sub État_initial_2_Clic()
  Rappelle 2
End Sub

'                                  Ainsi de suite jusqu'à :
' ...

Private Sub Effacement_7_Clic()
  Efface 7, "O17:U17"
End Sub

Private Sub État_initial_7_Clic()
  Rappelle 7
End Sub


Bonne journée.


ℝOGER2327
#7627


Dimanche 15 Haha 142 (Nativité de l’Œstre, artificier - fête Suprême Tierce)
29 Vendémiaire An CCXXIII, 3,8448h - orge
2014-W43-1T09:13:39Z
 

Pièces jointes

  • Classeur1 ESSAI 005.xlsm
    23.5 KB · Affichages: 37
  • Classeur1 ESSAI 005.xls
    47 KB · Affichages: 33

Staple1600

XLDnaute Barbatruc
Re : Retour arrière état initial

Bonjour à tous

Juste pour remercier ROGER2327 de sa sollicitude
(Je suis sous Excel 2013 à mon domicile, mais ici j'ai pas encore convaincu le propriétaire du PC d'installer le pack de compatibilité)

Du coup, en guise d'apéritif, m'en vais tester ta PJ xlisée ;)
 

alan5

XLDnaute Nouveau
Re : Retour arrière état initial

Bonjour,
Moi qui démarre dans le VBA, j'ai de quoi déjà réfléchir et étudié avec tout çà.
Pas évident de prime abord.
En tout cas un grand merci à vous tous.
Bye. @+
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Retour arrière état initial

Re...

Bonjour,
Moi qui démarre dans le VBA, j'ai de quoi déjà réfléchir et étudié avec tout çà.
Pas évident de prime abord.
En tout cas un grand merci à vous tous.
Bye. @+
Ce n'est pas vraiment compliqué, mais il y a l'emploi d'un méthode peu usitée (et c'est dommage) qui consiste à affecter des tableaux à un tableau.
Dans le classeur joint, j'ai ajouté une petite routine d'affichage pour voir ce qui se passe dans le tableau PilePdDd à chaque fois qu'il est modifié par l'une des procédures Efface ou Rappelle.​


Bon courage.


ℝOGER2327
#7632


Mardi 17 Haha 142 (Saint Homais d’Aquin, prudhomme - fête Suprême Quarte)
1[SUP]er[/SUP] Brumaire An CCXXIII, 1,0213h - pomme
2014-W43-3T02:27:04Z
 

Pièces jointes

  • Classeur1 ESSAI 005 (démo).xlsm
    32.8 KB · Affichages: 38

Discussions similaires

Statistiques des forums

Discussions
312 763
Messages
2 091 838
Membres
105 077
dernier inscrit
Airnee