Supprimer onglet ligne et cellule selon la réponse d'un combobox

Fermé
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015 - 19 sept. 2015 à 00:23
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015 - 22 sept. 2015 à 13:13
Bonjour

J'ai besoin d'un peu d'aide. Cela fait 2 jours que j'essaye en vain de chercher sur internet une réponse.

Donc je vous explique la situation, je crée une programme Excel pour le suivi des collaborateur. Le programme est composé d'une parti manager et une parti superviseur. L'ouverture de fichier et bloquer par un mot de passe. Ce que je cherche à faire c'est supprimer l'onglet, la cellule et la ligne correspondant à la sélection que l'on choisit par le combobox du l'Userform SupprimerColla. La ligne à supprimer se situe dans l'onglet « fichier collaborateurs » et en ce qui concerne la cellule elle se trouve dans la feuille « parametrage ». le UserForm se lance depuis le bouton dans la feuille "Nouveau Collaborateur"

Je ne sais vraiment pas comment faire et par quoi commencer.

Merci pour votre aide



Sub ouvreform1()
SupprimerColla.Show
End Sub


Private Sub Annuler_Click()
Unload Me
End Sub

Private Sub UserForm_Click()
Option Compare Text
Dim f, dico
Private Sub UserForm_Initialize()
Set f = Sheets("fichier collaborateurs")
Set dico = CreateObject("Scripting.Dictionary")
For Each c In f.Range("C2:C" & f.[C65000].End(xlUp).Row)
dico(c.Value) = ""
Next c
temp = dico.keys
Call tri(temp, LBound(temp), UBound(temp))
Me.ComboBox1.List = temp
End Sub



Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub

Private Sub Valider_Click()
Dim ret As Integer
ret = MsgBox("ætes-vous sur de vouloir supprimer ce collaborateur", vbYesNo)
If ret = vbNo Then
Exit Sub
Else
End Sub
A voir également:

4 réponses

thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
19 sept. 2015 à 11:26
Le code pour charger les collaborateurs triés dans ta combobox fonctionne-t-il ?
Des précisions sur ton besoin seraient nécessaires.
1- l'identification d'un collaborateur est-elle bien unique ?
2- peux-tu expliciter cette phrase : et en ce qui concerne la cellule elle se trouve dans la feuille « parametrage ».
--
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
19 sept. 2015 à 11:51
Hello
merci pour cette réponse si rapide.
pour répondre a des 2 questions:
- 1: les onglets sont fait automatiquement par le nom et le prénom
- 2: pour supprimer la cellule qui se trouve dans l'onglet "parametrage" sur la ligne

Le code pour charger les collaborateur fonctionnent bien.

le lien pour télécharger le programme : http://we.tl/CFszDg52T9
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
19 sept. 2015 à 12:09
un autre lien si l'autre ne fonctionne pas: http://we.tl/LSxnkWY0Hc

nom:ADMIN
Mot de passe: ADMIN
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 19/09/2015 à 12:07
Bonjour, a vous deux,

Benny87

fichier exemple: https://www.cjoint.com/c/EItkgrQYaGf

A adapter a votre fichier que je n'avais pas ce matin
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
19 sept. 2015 à 12:21
merci 100 fois même encore plus
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
19 sept. 2015 à 12:47
une question pour la suppression de la cellule:
je voudrais plutôt supprimer la colonne qui contient ce nom qui se trouve seulement sur la ligne 1 de ce même fichier.
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
19 sept. 2015 à 12:47
With Worksheets("parametrage")
If Application.CountIf(.Rows(1), ComboBox1.Text) > 0 Then 'Nom collab existe
lig = 1
'recherche ligne
lig = .Rows(1).Find(ComboBox1.Text, .Cells(lig, 3), , xlWhole).Row
.Range(lig).Delete Shift:=xlUp
Else
MsgBox "Attention Collaborateur " & ComboBox1.Text & " pas dans onglet parametrage!!!!!"
End If
End With
MsgBox "Toutes Les Informations du Collaborateur " & ComboBox1.Text & " ont ete supprimees......."
UserForm_Initialize
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
20 sept. 2015 à 00:04
Si vous avez le temps, pouvez-vous m'expliquer en détail le code pour que j'apprenne un peu
0
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
19 sept. 2015 à 13:51
ci-dessous code


Private Sub Valider_Click()
Dim ret As Integer
ret = MsgBox("êtes-vous sur de vouloir supprimer ce collaborateur/trice", vbYesNo)
If ret = vbNo Then Exit Sub

Set f = Sheets("fichier collaborateurs")
For Each collabo In f.Range("C1:C" & f.Columns("C").Rows(f.Rows.Count).End(xlUp).Row)
If collabo.Value = ComboBox1.Value Then
f.Rows(collabo.Row).Delete
Exit For
End If
Next

Set f = Sheets("parametrage")
For Each collabo In f.Range("E1:E" & f.Columns("E").Rows(f.Rows.Count).End(xlUp).Row)
If collabo.Value = ComboBox1.Value Then
collabo.Clear
Exit For
End If
Next

ComboBox1.RemoveItem (ListIndex)







--
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
20 sept. 2015 à 00:02
Hello
je ne comprends pas trop ton code car il est vraiment différent de celui que f894009 a si gentiment fait pour moi.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
Modifié par f894009 le 20/09/2015 à 09:24
Bonjour,

le code de Thev supprime la ligne du collab selectionne et efface le contenu de la cellule du dit collab. Ce code n'est pas tres different de celui que j'ai ecrit, Thev fait des boucles de recherche, moi j'utilise une instruction et je decoupe un peu plus le code ex pour cette ligne:

For Each collabo In f.Range("C1:C" & f.Columns("C").Rows(f.Rows.Count).End(xlUp).Row)


ici, excel recalcul a chaque tour de la boucle quelle est la derniere ligne de la colonne et reconstruit la plage de cellule.
Pour plus de "performance", chercher la derniere ligne de la colonne, creer une plage en memoire et apres boucle de recherche sur cette plage en memoire.

Pour moi, l'instruction
Find
gere la boucle de recherche a ma place et plus rapidement que du code pour faire a l'identique, donc ok

Je regarde pour votre suppression de colonne au lieu de cellule dans votre fichier, onglet parametrage


je voudrais plutôt supprimer la colonne qui contient ce nom qui se trouve seulement sur la ligne 1 de ce même fichier. Onglet parametrage ?????. La ligne 1 c'est la ligne 4 ou ???????
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
21 sept. 2015 à 19:04
Tu as une question sur la suppression de la colonne dans là sheet "parametrage"
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
21 sept. 2015 à 19:34
Donc je reformule si je n'ai pas été claire.
je souhaite supprimer dans le sheet "parametrage" la colonne qui contient le nom qui a été choisi dans la combobox. Dans la sheet parametrage, ton les nom se trouve sur la première ligne de cette onglet
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
22 sept. 2015 à 00:03
Je viens de trouver la solution merci 1000 fois.

J'ai une autre question.
Le code:
If Application.CountIf(.Rows(1), ComboBox1.Text) > 0 Then        'Nom collab existe
lig = 1
'recherche ligne
lig = .Rows(1).Find(ComboBox1.Text, .Cells(lig, 1).End(xlUp), , xlWhole).Column
.Range(lig & "1").Value = "test"


Je voudrai ramplacer le texte par un autre texte
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
22 sept. 2015 à 09:15
Bonjour,

Il sortirait d'ou ce texte ???
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
22 sept. 2015 à 11:39
C'eat pas très claire
Je recherche à remplacer le texte dans la cellule par une autre texte dans cette même cellules sans changer forme (police, fond, ...) ce texte viendrait de la macro.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
22 sept. 2015 à 11:46
Re,

avec ex:
.Range(lig & "1").Value = "test"


ca ne change pas le format de la cellule !!!!!!
0
Benny87 Messages postés 13 Date d'inscription samedi 19 septembre 2015 Statut Membre Dernière intervention 22 septembre 2015
22 sept. 2015 à 13:13
J'ai trouvé merci encore pour ton aide
non, il faut mettre .cells
With Worksheets("parametrage")
If Application.CountIf(.Rows(1), ComboBox1.Text) > 0 Then 'Nom collab existe
lig = 1
'recherche ligne
lig = .Rows(1).Find(ComboBox1.Text, .Cells(lig, 1).End(xlUp), , xlWhole).Column
.Cells(1, lig).Value = "Ajouter le nom de l'onglet"
voila le code final
0