Erreur : Remplacement d’une cellule via ImputBox

  • Initiateur de la discussion Initiateur de la discussion thom02
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

thom02

Guest
Bonjour,

Pour me faciliter la vie dans un projet, Je cherche à mettre en place un outil qui me permettrait de remplacer dans toutes les feuilles visible le contenu d’une cellule choisie par le contenu imposé.
Mais voilà si j’arrive à le faire en « hard coding » en imposant les valeurs dans le code dès que j’essaye de le faire avec des inputbox j’obtiens une erreur « La méthode ‘Range’ de l’objet Worksheet a échoué »
D’autre part je n’arrive pas a gerer un arret de la procédure au cas ou l’utilisateur clic sur Annuler dans l’inputbox
Pourriez vous m’aider svp
Merci 😛
 

Pièces jointes

Re : Erreur : Remplacement d’une cellule via ImputBox

Salut thom02,
voici une petite explication.

VB:
Sub RemplacementCellule()

Dim CelluleARemplacer As Range
Dim ContenuCellule As String, Feuille_Depart As String, Mon_Range As String
Dim Choix

'1re étape : Le 1er inputbox
'Quand tu utilises Application.InputBox, il faut mettre un Set devant ta variable.
'2 manières de traiter l'erreur, soit par l'exemple qui suit, ou encore avec une manip du type
'On error Goto Annuler
'J'ai mis un Annuler: plus bas en commentaire. Ça fonctionnerait aussi. 
On Error Resume Next
Application.DisplayAlerts = False

Set CelluleARemplacer = Application.InputBox(Prompt:= _
                "Entrez ci-dessous la cellule qui doit etre remplacée.", _
                    Title:="Choix de Cellule", Type:=8)

On Error GoTo 0
Application.DisplayAlerts = True

If CelluleARemplacer Is Nothing Then Exit Sub
Mon_Range = CelluleARemplacer.Address


'2e étape : Le 2e inputbox
'La manière de traiter l'erreur est avec un vbNullString
ContenuCellule = InputBox("Entrez le texte que vous souhaitez y voir apparaitre")
If ContenuCellule = vbNullString Then Exit Sub

Choix = MsgBox("Voulez vous vraiment procéder à l'opération de remplacement des cellules?", vbCritical + vbYesNo, "ATTENTION")

Application.ScreenUpdating = False

If Choix = vbYes Then
Feuille_Depart = ActiveSheet.Name
    For Each sh In Sheets
        If sh.Visible = True Then
            sh.Select
            Range(Mon_Range).Value = ContenuCellule
        End If
    Next sh
    Sheets(Feuille_Depart).Select
Else
    Exit Sub
End If


'Annuler:
End Sub

Au plaisir,

Étienne
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour