Supprimer cellule par raport a une selection inversse [ Résolu ]

stef371967

XLDnaute Junior
Bonjour a tous voici mon petit problème

avec une commande par bouton une ligne de commande
pour une suppression de ligne voir mon fichier joint pour les détails
car la je coince..

attention il y a des insertion automatique de ligne avec le bouton existent
bleu " Nouv N° d'ordre"

enfin voila

merci a vous d'avance pour votre travail

Stef...............
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Supprimer cellule par raport a une selection inversse

Bonjour stef371967,

Une solution avec cette macro :
VB:
Private Sub CommandButton2_Click()
Dim A
   ' ActiveSheet.Unprotect
    A = Split(Range("a_classer").Address, ",") 'On reprend la fin de l'adresse de ta zone nommée
    Rows("38:" & Val(Mid(A(1), 4, InStr(A(1), ":") - 2)) - 1).Delete 'On récupère le num de la dernière ligne à effacer et on efface les lignes 38 à ce numéro trouvé.
    'ActiveSheet.Protect Contents:=True, Scenarios:=True
End Sub
 

stef371967

XLDnaute Junior
Re : Supprimer cellule par raport a une selection inversse

mais bien sur excuse moi je suis novice en VBA

Juste une dernière chose . si je clic une seconde foi sur le bouton il me supprime toujours des lignes
y a til un moyen pour bloquer la manip avec seulement en affichage de base avec le N°d'ordre N°1

Merci... bon boulot
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Supprimer cellule par raport a une selection inversse

Re,

Il te suffit de modifier une ligne dans la macro. Essaie comme ceci :
VB:
Private Sub CommandButton2_Click()
Dim A
   ' ActiveSheet.Unprotect
   A = Split(Range("a_classer").Address, ",") 'On reprend la fin de l'adresse de ta zone nommée
   If Val(Mid(A(1), 4, InStr(A(1), ":") - 2)) - 1 > 37 Then Rows("38:" & Val(Mid(A(1), 4, InStr(A(1), ":") - 2)) - 1).Delete 'On récupère le num de la dernière ligne à effacer et on efface les lignes 38 à ce numéro trouvé.
   'ActiveSheet.Protect Contents:=True, Scenarios:=True
End Sub
 

Softmama

XLDnaute Accro
Re : Supprimer cellule par raport a une selection inversse

Re re,

Et sinon pour le n° d'ordre, tu peux nommer la plage (par exemple toto). Et à la fin de la macro, tu places un:
Code:
Range("toto") = 1
pour le remettre à 1, mais je trouve ça moins bien. A toi de voir.
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer cellule par raport a une selection inversse [ Résolu ]

Bonsoir à tous


Une autre façon d'identifier le Row désiré

Code:
Sub a()
MsgBox Rows("38:" & Range("a_classer").Areas.Item(2).Row - 1).Address
End Sub
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Supprimer cellule par raport a une selection inversse [ Résolu ]

Bonjour Stef, Salutations Staple1600,

Merci pour ta solution Staple1600, qui rend la mienne très compliquée au regard de la simplicité de la tienne. Beau raccourci ! :)
Dans le genre j'aime bien me compliquer la vie, j'avais aussi pensé faire comme ceci au départ, je te laisse juger :
VB:
Private Sub CommandButton2_Click()
Dim Zone As Range, Tableau
On error goto 0
Set Zone = Intersect(ActiveSheet.UsedRange, Columns("A:N")) 'La zone qui doit être traitée
Range("a_classer").Select
With Zone
    Tableau = .Value 'On garde les valeurs des col A à N dans un tableau
    .Value = 1 ' On met des 1 partout
    Selection.ClearContents 'Sauf dans la sélection (donc dans a_classer)
    .SpecialCells(xlCellTypeConstants, 23).Select 'On sélectionne ce qui n'est pas vide (donc tout sauf la plage a_classer)
    .Value = Tableau ' et on remet les valeurs d'origine
    Selection.entirerow.delete 'et y a plus qu'à tailler dans le gâteau
End With
0 End Sub

Mais je reste convaincu, que y avait surement bcp bcp plus compliqué ^^
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer cellule par raport a une selection inversse [ Résolu ]

Bonjour Softmama

Qu'importe le flacon, pourvu qu'on ait l'ivbaresse. ;)

Si j'ai privilégié mon approche, c'est que sur le PC où je suis actuellement, je dois à chaque fois rajouté dans ton code VBA.Mid sinon j'ai un message d'erreur. C'est ce qui m'a enclin à chercher une autre piste.

Moi aussi je m'amuse parfois à compliquer histoire de jouer avec VBA.
 

Discussions similaires

Réponses
2
Affichages
599

Statistiques des forums

Discussions
312 546
Messages
2 089 489
Membres
104 185
dernier inscrit
Daniel RONNA