VBA - Supprimer cellule en fonction d'une textbox

alexos

XLDnaute Nouveau
Bonjour tout le monde,

Nouveau inscrit sur le forum (même si j'y ai déjà trouvé énormément de réponses à mes questions dans les anciens posts), je me présente brièvement : 22 ans, je suis en stage et assez novice en VBA...

Ca fait un petit moment que je bosse sur un fichier Excel pour mon entreprise, j'ai donc créé un UserForm qui permet de remplir une feuille excel pour l'enregistrement des notes de frais.

J'arrive enfin à voir le bout et je bloque sur un problème à priori assez simple ...

Je souhaite restreindre au maximum l'utilisateur pour éviter les erreurs et vais donc bloquer la feuille entièrement afin qu'elle ne soit pas modifiable autrement qu'en passant par l'userform.

J'ai donc inséré un bouton permettant d'effacer une ligne de dépense, à déterminer dans une textbox nommée "NumTicket"

Je souhaite qu'en inscrivant le numéro de ticket, celà supprime uniquement les cellules non grisées de la ligne correspondante. J'ai 44 lignes de tickets et la première commence à la ligne 13 de la feuille "Note de Frais"

Mon problème consiste donc à faire comprendre en VBA que la valeur "1" de "NumTicket" correspond à la ligne 13, la valeur 2 à la ligne 14... Et ainsi de suite jusqu'à la valeur 44 qui correspond à la ligne 56.

Je pourrais utiliser une succession de If mais j'aimerais faire quelque chose de propre, je n'arrive pas à mettre en place une boucle adéquate...

Si quelqu'un qui passe par ici à une idée pour me faire avancer ça serait super !

Je joins un fichier exemple pour clarifier (je ne peux pas mettre le fichier complet puisqu'il s'agit d'un travail pour une entreprise)

Merci à tous ceux qui prendront le temps de me lire,

Alexis
 

Pièces jointes

  • NDF.xlsm
    24.1 KB · Affichages: 29

jpb388

XLDnaute Accro
Re : VBA - Supprimer cellule en fonction d'une textbox

Bonjour à tous et bienvenu
j'ai remplacé la textbox par une combobox ou tu ne peux que choisir les items déjà dedans (voir style de la combo)
regarde si OK
 

Pièces jointes

  • NDF alexos.xlsm
    28.7 KB · Affichages: 60

alexos

XLDnaute Nouveau
Re : VBA - Supprimer cellule en fonction d'une textbox

Salut et merci pour ta réponse rapide,

Franchement j'y avais pas pensé mais c'est vrai que ça simplifie le schmilblick ! Et tu viens de m'apprendre qu'on pouvait modifier le style combobox ça m'aide pas mal aussi merci !

Au passage une petite question, saurais-tu comment bloquer les entrées sur la feuille avec un mot de passe (donc dans "Révision") mais tout en permettant de les remplir à l'aide de textbox/combobox ?

Sachant que mon code ressemble à ça :

Code:
'Remplissage des lignes
Dim Ligne As Long
Dim Cel As Range

With Sheets("Note de Frais")

     Ligne = .Range("B" & Rows.Count).End(xlUp).Row + 1
    'Ligne = Cel.Row
    .Cells(Ligne, 2) = Me.Controls("DateSaisie")
    .Cells(Ligne, 3) = Me.Controls("Pays")
    .Cells(Ligne, 4) = Me.Controls("Objet")
    .Cells(Ligne, 7) = Me.Controls("Commentaires")
    .Cells(Ligne, 8) = Me.Controls("Valeur") * 1
    
    If TauxDev = "" Then
        Else
        .Cells(Ligne, 10) = Me.Controls("TauxDev") * 1
    End If

    If totalTVA = "" Then
        'Gaz-Oil, on ne récupère que 80% TVA
        ElseIf Pays.Value = "France" And Objet.Value = "Gaz Oil - voiture louée" Then
        .Cells(Ligne, 15) = Me.Controls("totalTVA") * 0.8
            Else
            .Cells(Ligne, 15) = Me.Controls("totalTVA") * 1
    End If
End With

Merci encore ! :D
 

jpb388

XLDnaute Accro
Re : VBA - Supprimer cellule en fonction d'une textbox

re
les cellules doivent être verrouillées
le MDP n'est pas obligatoire mais conseillé
le UserInterfaceOnly n'est pas obligatoire mais dans ce cas de figure oui pour permettre a la macro de modifier les cellules
la macro seplace dans le thisworkbook

VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Sh.Protect Password:="le MDP que tu veux", UserInterfaceOnly:=True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 106
Messages
2 116 268
Membres
112 706
dernier inscrit
Pierre_98