Effacement de cellules identiques
Bonjour,
Ayant très peu de notions en VBA, je sollicite votre aide pour pouvoir effacer sur l'une des lignes des cellules identiques.
L'énoncé est directement placé sur le classeur.
En vous remerciant par avance pour votre intérêt et vos solutions.
Bonjour,
Bonjour gmb,
Une autre proposition à tester.
Cdlt.
Option Explicit
Const sRange1 As String = "$E$6:$X$6"
Const sRange2 As String = "$E$11:$X$11"
Dim lRow As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If Not Intersect(Target, Range(sRange2)) Is Nothing Then
On Error GoTo exit_Handler
x = Application.Match(Target.Value, Range(sRange1), 0)
Range(sRange1)(x).ClearContents
With Worksheets("Feuil2")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lRow, 1) = x
.Cells(lRow, 2) = Target.Value
End With
End If
exit_Handler:
Exit Sub
End Sub
Private Sub cmdRAZ_Click()
With Worksheets("Feuil2")
.Range(sRange1).Copy Destination:=Me.Cells(6, 5)
.Cells(1).CurrentRegion.Offset(1, 0).ClearContents
End With
End Sub
Private Sub cmdError_Click()
With Worksheets("Feuil2")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
If lRow = 1 Then Exit Sub
Me.Range(sRange1)(.Cells(lRow, 1)) = .Cells(lRow, 2)
.Range(.Cells(lRow, 1), .Cells(lRow, 2)).ClearContents
End With
End SubMerci pour vos solutions.
Comment fait-on pour créer le bouton ou la commande "état initial " qui n'apparait comme un
bouton de commande ? Quelle différence avec un bouton de commande ?
Autre question, que faut-il faire pour que les déclenchements (suppression) se fassent en deux
clics au lieu d'un ?
Inversement dans un classeur existant ou les déclenchements se font en deux clics, comment
faire pour qu'il se réalise en un clic.
Existe-t-il en faite plusieurs manières ou méthodes sur ce sujet ?
Merci pour vos réponses.
Bonjour
Je suppose que les 2 premières questions s’adressent à moi.
Comment fait-on pour créer le bouton ou la commande "état initial " qui n'apparait comme un
bouton de commande ?
Bouton de commande
Pour personnaliser un bouton de commande, on peut le dessiner avec l'outil de dessin : "INSERTION – Texte - Zone de texte"
* On saisie le texte qu’on veut voir écrit sur le bouton. Ex : ‘’Lancer la macro’’
* On sélectionne ensuite l'objet en cliquant sur sa bordure et en faisant attention à ce que ce soit bien l'objet qui soit sélectionné et non le texte à l'intérieur.
*On sélectionne les outils de dessin :’’OUTILS DE DESSIN’’ (en haut et teinté en orange)
* On choisit si un style de forme, si on veut un dégradé de couleur : clic sur l’un des boutons ‘’Abc’’
* Si on veut on clique et on modifie la forme du bouton : ‘’Modifier la forme – Modifier la forme’’
* On retourne dans le menu ‘’Accueil’’ du bandeau
* On applique les formats que l’on veut : centrage du texte, couleur du fond, couleur de la police…
* On positionne l'index de la souris sur le bord de l'objet sélectionné : l'index doit prendre la forme de 4 petites flèches en croix
* On fait un clic droit et dans la fenêtre qui s'ouvre on choisit "Format de la forme’’
* On clique sur le 3° icone des ‘’Options de forme’’
* On clique sur ‘’PROPRIETES’’
* on clique sur ‘Ne pas déplacer ou dimentionner avec les cellules’’
* On décoche la case ‘’Imprimer l’objet’’
* On ferme la fenêtre
* On sélectionne à nouveau l’objet et on y fait un clic droit
* Dans la fenêtre qui s'ouvre on choisit maintenant "Affecter une macro". Attention, il faut parfois recommencer plusieurs fois l'opération pour ouvrir la bonne fenêtre...
* On sélectionne la macro que le bouton doit déclencher
* On clique sur "OK"
On a alors un bouton de commande que l'on peut remodifier à son goût en faisant dessus un clic droit.
Quelle différence avec un bouton de commande ?
Aucune. Je les trouve plus à mon goût. C’est tout !
Bye !
Merci à toi gmb pour toutes ces indications qui sont très précises et éclairantes.
Autre question, est-il possible et si oui comment, dans ta macro faire en sorte que
la suppression s'active en deux clics plutôt qu'un ?
S'il y a une solution, est-elle applicable à toutes les macros ?
Question hors sujet, existe-t-il un raccourci ou alors faut-il en faite créer une macro pour supprimer
une portion de cellules en la décalant vers le haut ?
( à la place de choisir la zone de cellules concernées / clic droit - supprimer / décaler les
cellules vers le haut )
Merci pour tes réponses.
Bonjour,
Pour un double-clic :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Double
If Not Intersect(Target, Range(sRange2)) Is Nothing Then
On Error GoTo exit_Handler
Cancel = True
x = Application.Match(Target.Value, Range(sRange1), 0)
Range(sRange1)(x).ClearContents
With Worksheets("Feuil2")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lRow, 1) = x
.Cells(lRow, 2) = Target.Value
End With
End If
exit_Handler:
Exit Sub
End Sub