Microsoft 365 Ajout d'un nouveau critère dans le code VBA

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

Amilo

XLDnaute Accro
Bonjour le forum,

Je me permets d'ouvrir un nouveau fil même s'il s'agit d'une demande dans la continuité de ma précédente discussion ici,
Vous trouverez 2 fichiers dont l'un contenant le code élaboré par yal et que j'aurais souhaité adapater (voir fichier "Consolidation in situ yal v2"),
J'ai indiqué toutes les explications dans chacun des onglets du fichier.

En vous remerciant par avance

Cordialement
 

Pièces jointes

Les conditions que tu donnes dans ton exemple sont fausses.
Les vraies conditions pour avoir le résultat mentionné sont :
si "E" = "F" alors "M" = "RG"
si "E" < "F" alors "M" = "TT"
sinon "M" = "Erreur"
VB:
      If tbImport(i, 5) = tbImport(i, 6) Then
        tbSynth(12, dl) = "RG"
      ElseIf tbImport(i, 5) < tbImport(i, 6) Then
        tbSynth(12, dl) = "TT"
      Else
        tbSynth(12, dl) = "Erreur"
      End If

Il faudrait donc être plus précis sur le résultat attendu
 
@yal ,
Pardon, je pensais que vous aviez également donné la solution,
Mais je confirme qu'il s'agit bien d'une erreur de ma part,
et ce que vous avez rappelé est juste.
Si vous pouviez svp le transcrire avec la condition que j'ai indiquée dans le fichier, je vous en serais reconnaissant.

Merci d'avance

Cordialement
 
Re @yal ,
Effectivement, avec un nouvel essai (voir ci-dessous).
Merci par avance

Cordialement

VB:
Si la dernière valeur de la colonne B est égale à 460000 alors

If tbImport(i, 5) = tbImport(i, 6) Then
        tbSynth(12, dl) = "RG"
      ElseIf tbImport(i, 5) < tbImport(i, 6) Then
        tbSynth(12, dl) = "TT"
      Else
        tbSynth(12, dl) = "Erreur"
      End If


Sinon si la dernière valeur de la colonne B est égale à 230000 alors :

If tbImport(i, 5) = tbImport(i, 6) Then
        tbSynth(12, dl) = "NP"
      ElseIf tbImport(i, 5) < tbImport(i, 6) Then
        tbSynth(12, dl) = "BK"
      Else
        tbSynth(12, dl) = "Erreur"
      End If
 
Dernière édition:
Bonjour @yal , le forum,
Je viens de tester, c'est super et encore merci pour tout 🙂,
Je vais essayer de comprendre la méthode,
j'avais essayé de trouver par moi même mais en vain.

Sinon, une dernière question svp : que signifie le % derrière les variables/Constantes ?
Je ne me souviens pas encore l'avoir rencontré en VBA,
C'est probablement facultatif mais est-ce une manière de faire pour une meilleure compréhension ou pour la syntaxe ?

VB:
Dim dl%, dl2%, i%, j%, nbC%

Merci
Cordialement
 
Dernière édition:
Bonjour Staple1600,
Merci, je ne savais qu'il y avait ces raccourcis pour le typage.
Sinon, en effet il est fortement recommandé de typer mais aussi le bon typage.
Merci pour votre réponse
Bon dimanche à tous
 
Dernière édition:
Bonjour le forum,

Je poursuis dans la finalisation du fichier en pièce jointe avec un dernier critère que je n'arrive pas à intégrer dans l'excellent code VBA de yal 🙂

J'ai indiqué dans l'onglet "Consolidation 2022-06" du fichier toutes les explications concernant ce nouveau critère.

En vous remerciant pas avance

Cordialement
 

Pièces jointes

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