pourquoi

alessandro

XLDnaute Occasionnel
Bonsoir à tout le forum,

Je souhaiterais votre aide pour l'écriture d'une macro qui devra mettre "P" quand il ya 1 mais
au contraire el met encore la "C"
Merci pour votre aide.

Bien à vous,
Alessandro
 

Pièces jointes

  • abc_clienti.xls
    73 KB · Affichages: 66
  • abc_clienti.xls
    73 KB · Affichages: 91
  • abc_clienti.xls
    73 KB · Affichages: 90

JCGL

XLDnaute Barbatruc
Re : pourquoi

Bonjour à tous,

Peut-être en inversant les conditions :

For y = L_debut To L_fin
If Cells(y, 11) >= 1 Then Cells(y, 12) = "P" + Cells(y, 5)
If Cells(y, 11) < 1 Then Cells(y, 12) = "C" + Cells(y, 5)
If Cells(y, 11) < 0.8 Then Cells(y, 12) = "B" + Cells(y, 5)
If Cells(y, 11) < 0.5 Then Cells(y, 12) = "A" + Cells(y, 5)
Next y

A+ à tous
 

camarchepas

XLDnaute Barbatruc
Re : pourquoi

Bonjour ,

Bon tiré par les cheveux , mais comme cela ça fonctionne

Code:
For y = L_debut To L_fin
   Select Case Cells(y, 11)
   Case Is < 0.5: Cells(y, 12) = "A" + Cells(y, 5)
   Case Is < 0.8: Cells(y, 12) = "B" + Cells(y, 5)
   Case Is < 0.9999999: Cells(y, 12) = "C" + Cells(y, 5)
   Case Is > 0.99999999: Cells(y, 12) = "P" + Cells(y, 5)
   End Select
Next y
 

Roland_M

XLDnaute Barbatruc
Re : pourquoi

bonjour à tous,
problème éternel de précision entre excel et vba !

ici JCGL à raison !
les 1 à l'origine, après traitement c'est = 1,00000324215987

je signale en passant que sur ces deux lignes Dim
Dim i, j, k, X, y, z, t, u, L_debut, L_fin As Integer
Dim total_valeur, limite, sous_tot, nb_cat As Long

il n'y a que L_fin As Integer et nb_cat As Long
toutes les autres sont du Type Variant !

ou alors il faut préciser à chaque fois As Integer(ou autre) à chaque variable
ET SURTOUT pour les lignes et pour les boucles avec les Lig il faut As Long !!
ensuite utiliser application.rows.count car excel 2003 et 2007 ce n'est pas le même nbr de lignes !


et puis pour les débutants, pour plus de lisibilité ...
les nos de colonnes ce n'est valable qu'en variable pour boucle
sinon préciser Cells(NoLig, "X") c'est mieux que Cells(NoLig, 24)
et d'aller compter sur la feuille voir de quelle colonne il s'agit !

on peut aussi déclarer des constantes, exemple:
Public Const ColDebit$ = "X", ColCredit$ = "Y"
ou
Public Const ColDebit = 24, ColCredit = 25

ainsi
Cells(NoLig, ColDebit) Cells(NoLig, ColCredit)
c'est plus parlant et moins pénible à suivre dans le code !
mais là c'est toute une 'éducation' à faire, voir à refaire pour certain !




voir ci-joint !?
 

Pièces jointes

  • pourquoi-abc_clienti.xls
    72.5 KB · Affichages: 30

Discussions similaires

Réponses
6
Affichages
343
Réponses
6
Affichages
434

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens