Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème sur mon code

  • Initiateur de la discussion Initiateur de la discussion Shaak33
  • 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 !

Shaak33

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant en VBA et j'essaye de créer un code qui me fait basiquement un tri puis renseigne "1" dans une cellule si les conditions sont remplies :


Code:
Sub test()
Dim i As Long
Range("A1:Z2000").Select
Selection.Sort Key1:=Range("L1;L2000"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

For i = Range("B65536").End(xlUp).Row To 1 Step -1
    If Cells(i, 12).Value <> Cells(i - 1, 12).Value Then Cells(i, 11).Value = "1"
Next i
End Sub

La ligne en surbrillance est: If Cells(i, 12).Value <> Cells(i - 1, 12).Value Then Cells(i, 11).Value = "1"

Problème: ce code me renvoie l'erreur 1004: "erreur définie par l'application ou par l'objet" (j'ai l'impression qu'il s'agit d'une erreur due au ".Select")
Quelqu'un saurait-il m'aiguiller vers la bonne solution ?

Merci à tous ceux qui se pencheront sur mon problème 🙂

Bonne journée,

Shaak33
 
Re : Problème sur mon code

Bonjour Shaak

essaie avec:


For i = Range("B65536").End(xlUp).Row To 2 Step -1

l'erreur se produit lorsque I est égal à 1,
<> Cells(i - 1, 12) provoque l'erreur

à+
Philippe
 
Re : Problème sur mon code

Bonjour, alors déjà, sans aller plus loin, tu peux supprimer tes select

Code:
Sub test()
Dim i As Long
Range("A1:Z2000").Sort Key1:=Range("L1;L2000"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

For i = Range("B65536").End(xlUp).Row To 1 Step -1
    If Cells(i, 12).Value <> Cells(i - 1, 12).Value Then Cells(i, 11).Value = "1"
Next i
End Sub

et avec un petit fichier d'exemple on pourrait regarder un peu plus loin ^^
 
Re : Problème sur mon code

Bonjour phlaurent55, bonjour thombzh,

Merci beaucoup pour votre aide, j'ai apporté les modifications que vous m'avez suggéré mais un autre messge d'erreur s'affiche dorénavant: "La méthode Range de l'objet Global a échoué"

Pour plus de clarté, un petit fichier exemple en pj.
Onglet "data" les données brutes, onglet "résultat" le résultat que j'espèrerais obtenir.

Je n'en étais pas encore là dans mon code mais puisqu'on y vient j'aimerais ajouter une deuxieme condition pour compter "1" qui serait: "MotCde" différent de "TES"

Auriez-vous une petite astuce ? 🙂

Encore merci,
Shaak
 

Pièces jointes

Dernière édition:
Re : Problème sur mon code

Euh...
J'ai honte ><
Code:
Range("L1;L2000"),
J'ai mis Range("L1;L2000"), au lieu de Range("L1:L2000"),

Erreur 1004 résolue !
Je m'attaque à ma deuxième condition 🙂

Shaak33
 
- 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

Discussions similaires

Réponses
5
Affichages
281
Réponses
2
Affichages
523
Réponses
3
Affichages
672
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
864
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…