VBA Code erroné

Résolu
Bonjour, suis débutante dans VBA, je me suis servi de Youtube pour m'aider. Ce code s'arrête à la section de la cellule AH2 donc je n'ai pas eu l'occasion de vérifier si le reste est correcte, donc si vous voyez des erreurs merci de m'en aviser je vous remercie d'avance.

Sub MotifPlainte()

Dim i As Integer
Sheets("Plaintes").Activate
Columns(34).Insert
Range("AH1").Select
Range("AH1").Value = "Motif Plainte"
Range("AH2").Select

For ligne = 2 To 1700
If Cells(34, 2) = 1 Then
Cells(35, 2).Value = "Préjudice personnel"
ElseIf Cells(ligne, 2) = 2 Then
Cells(ligne, 2).Value = "Harcèlement"
ElseIf Cells(ligne, 2) = 3 Then
Cells(ligne, 2).Value = "Vol"
End if
Next ligne
End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


Merci d'y penser dans tes prochains messages.

5 réponses

  1. Modérateur
    Bonjour
    Je ne vois pas d'erreur dans ce code.
    Par contre, pourquoi ne pas simplement fait une formule (des SI imbriqués) au lieu d'une macro ? Pour ton besoin, ca aurait largement suffit non ?
    0
    1. Oui j'ai déjà monté une formule de si imbriqué mais je cherche si je peux faire une macro car les users du fichier auront à copier une data et je veux leur éviter de créer la colonne et copier la formule. Cliquer sur bouton de macro sera beaucoup plus simple pour les gens non familiers avec Excel.
      Sauf que mon code ci-haut, s'arrête à la section de AH2, il ne passe pas à la boucle.
      0
      1. Modérateur
        s'arrête à la section de AH2,

        "section" ???
        Selection tu veux dire non ??

        Quoi qu'il en soit, as tu essayé de lancer ton code en mode pas à pas et de voir si les valeurs sont bien celles que tu t'attends à avoir ?
        0
    2. je l'ai fait il n'affiche aucune erreur mais s'arrête toujours à la sélection de AH2. J'ai même divisé en 2 parties le code, la création de la colonne, et la boucle, j'ai exécuté chaque macro à part ça marche seulement pour la première partie
      0
      1. Modérateur
        Il ne rentre pas dans la boucle ?
        Sans aucun message d'erreur ?
        En mode pas à pas ( avec la touche F8 ) ?
        Ne serait-ce pas plutôt un souci dans tes IF ?
        Es-tu sûr qu'il y a bien les valeur que tu penses dans la colonne B ?
        Qu'as tu dans la cellule qui correspond à
        Cells(34, 2) 
        ?
        N'y aurait-il pas des espaces en trop dans tes cellules ? ( à mon avis, il serait judicieux de faire un trim sur tes cellules)

        Et c'est normal que tu remplaces le contenu de la cellule B par le texte ? Ne devrais tu pas le mettre dans la colonne d'à côté ??

        Pourrais tu nous partager une feuille d'exemple pour qu'on puisse tester ton code ?
        https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
        0
    3. Contributeur
      bonjour, tes lignes 11 et 12 sont bizarres.
      Pourquoi tester le contenu de la ligne 34 dans la boucle?
      Peut-être souhaiterais-tu y utiliser
      ligne
      au lieu de 34 et 35?
      0
      1. Contributeur
        Tu n'as pas expliqué ce que ton code devrait faire, et j'ai l'impression que tu mélanges les lignes et les colonnes.
        1