Bonjour. Je vous joint un code qui est fonctionnel, mais en souhaitant l'optimiser et poser des variables pour que mon code soit plus facilement adaptable par la suite (pour pour d'autres macros similaires), j'ai voulu utiliser des variables et leur donner une valeur. Une fois appelée dans mon code, c'est leur valeur qui doit être utilisée. Mais voila, j'ai des retours d'erreur et ne parvient pas à comprendre ce qui cloche. Elles sont toutes appelée dans le CODE PRINCIPAL en fin de macro, mais çà bloque quelque-part. Si je remets toutes les valeur en "dur" dans mon code tout fonctionne à nouveau. Merci de vos lumières, je crois que c'est surtout un probleme de syntaxe ?
Sub PrenomChange()
'déclaration des variablesutilisées dans le code
Dim MotMSG As Byte
MotMSG = prénom 'mot utilisé dans la msgBox
Dim ChampNEW As Byte
ChampNEW = PRENOM 'nom du champ qui va envoyer la modification
Dim ChampACT As Byte
ChampACT = prenomACT 'nom du champ qui va être modifié
Dim Colonne As Byte
Colonne = F 'colonne du tableau à modifier
Dim FeuilleDestination As Byte
FeuilleDestination = Prospection ' nom de la feuille ou est localisé le tableau à modifier
Dim FeuilleOrigine As Byte
FeuilleOrigine = Feuil2 'nom de la feuille depuis laquelle on copie les modifications
Dim Ligne As Byte
Ligne = Range("F4").Value + 3 'On récupère la valeur de la ligne du projet stockée sur la cellule F4 / le +3 permet de zapper les 3 premières lignes de la feuille
' CODE PRINCIPAL
If Range("ChampNEW").Value = Range("ChampACT").Value Then MsgBox "C'est le même " & MotMSG: Exit Sub
If IsEmpty(Range("ChampNEW")) = True Then If MsgBox("Pas de valeur renseignée, souhaites-tu vraiment supprimer cette info ?", vbOKCancel, "SUPPRESSION ?") = vbCancel Then Exit Sub: Worksheets("FeuilleDestination").Range(Colonne & Ligne).ClearContents: Exit Sub
If MsgBox("Certaine de vouloir modifier ce champ ?", vbOKCancel, "MODIFICATION DU " & MotMSG) = vbCancel Then Exit Sub
Range("ChampNEW").Copy Destination:=Worksheets("FeuilleDestination").Range(Colonne & Ligne) 'On colle la valeur de PRÉNOM sur la cellule de la ligne correspondant en colonne F
Worksheets("FeuilleOrigine").Range("ChampNEW").ClearContents 'On vide la cellule NOM une fois l'opération effectuée
End Sub