Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives


 
 
LinkBack Outils de la discussion
Vieux 23/06/2003, 10h31   #1 (permalink)
Reeaz
Guest
 
Messages: n/a
Par défaut pb de remplissage

Bonjour,

j'ai une feuille de calcul, sur la collonne F j'ai des notes pr chaque note j'aimerai asscosier une valeur 4 collonnes plus loin, j'ai crée une macro mais ca ne marche pas, la voila:

Sub Chiffre1()

fin = Range("F2").End(xlDown).Row
For i = 2 To fin

If Cells(i, 7).Value = "Etat" Then Cells(i, 11).Value = 1
If Cells(i, 7).Value = "NR" Then Cells(i, 11).Value = 23
If Cells(i, 7).Value = "AAA" Then Cells(i, 11).Value = 2
If Cells(i, 7).Value = "AA+" Then Cells(i, 11).Value = 3
If Cells(i, 7).Value = "AA" Then Cells(i, 11).Value = 4
If Cells(i, 7).Value = "AA-" Then Cells(i, 11).Value = 5
If Cells(i, 7).Value = "A+" Then Cells(i, 11).Value = 6
If Cells(i, 7).Value = "A" Then Cells(i, 11).Value = 7
If Cells(i, 7).Value = "A-" Then Cells(i, 11).Value = 8
If Cells(i, 7).Value = "BBB+" Then Cells(i, 11).Value = 9
If Cells(i, 7).Value = "BBB" Then Cells(i, 11).Value = 10
If Cells(i, 7).Value = "BBB-" Then Cells(i, 11).Value = 11
If Cells(i, 7).Value = "BB+" Then Cells(i, 11).Value = 12
If Cells(i, 7).Value = "BB" Then Cells(i, 11).Value = 13
If Cells(i, 7).Value = "BB-" Then Cells(i, 11).Value = 14
If Cells(i, 7).Value = "B+" Then Cells(i, 11).Value = 17
If Cells(i, 7).Value = "B" Then Cells(i, 11).Value = 18
If Cells(i, 7).Value = "B-" Then Cells(i, 11).Value = 19
If Cells(i, 7).Value = "CCC" Then Cells(i, 11).Value = 20
If Cells(i, 7).Value = "CC" Then Cells(i, 11).Value = 21
If Cells(i, 7).Value = "D" Then Cells(i, 11).Value = 22

Next i


End Sub


Si qqun voit l'erreur, ce serait sympa de m 'aider.
Merci.

Reeaz
 
ANNONCES
Vieux 23/06/2003, 10h52   #2 (permalink)
alex
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

j'ai jamais vu quelqu'un qui se régale autant que toi
 
Vieux 23/06/2003, 11h17   #3 (permalink)
pyrof
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

bonjour,
Il semble que la valeur fin est 65535 c'est à dire toute la colonne ce qui est très long.

Voir :
Sub Chiffre1()
i = 2
While Cells(i, 7) <> ""
If Cells(i, 7).Value = "Etat" Then Cells(i, 11).Value = 1
If Cells(i, 7).Value = "NR" Then Cells(i, 11).Value = 23

......
If Cells(i, 7).Value = "CC" Then Cells(i, 11).Value = 21
If Cells(i, 7).Value = "D" Then Cells(i, 11).Value = 22
i = i + 1
Wend

End Sub


Rn espérant que tu n'as pas de cellule vide au milieu
 
Vieux 23/06/2003, 11h31   #4 (permalink)
pyrof
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

c'est encore moi

Je viens de voir

fin = Range("F2").End(xlDown).Row

et cells(i,7)

F2 correspond à la colonne 6 et tu teste dans la colonne 7, n'est pas la ton problème??
 
Vieux 23/06/2003, 11h45   #5 (permalink)
pyrof
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

La dernière fois (peut être)

J'ai du temps alors je me suis permis

voici un code qui va être plus rapide en exécution :

Sub Chiffre1()
Dim valeur2 As Range
i = 2
While Cells(i, 7) <> ""
Set valeur2 = Cells(i, 11)
Select Case Cells(i, 7)
Case "Etat": valeur2 = 1
Case "NR": valeur2 = 23
Case "AAA": valeur2 = 2
Case "AA+": valeur2 = 3
Case "AA": valeur2 = 4
Case "AA-": valeur2 = 5
Case "A+": valeur2 = 6
Case "A": valeur2 = 7
Case "A-": valeur2 = 8
Case "BBB+": valeur2 = 9
Case "BBB": valeur2 = 10
Case "BBB-": valeur2 = 11
Case "BB+": valeur2 = 12
Case "BB": valeur2 = 13
Case "BB-": valeur2 = 14
Case "B+": valeur2 = 17
Case "B": valeur2 = 18
Case "B-": valeur2 = 19
Case "CCC": valeur2 = 20
Case "CC": valeur2 = 21
Case "D": valeur2 = 22
End Select
i = i + 1
Wend

End Sub



Car pour chaque cellule tu fais tous les tests même le premier est le bon.
avec select cas dès qu'il a trouve le case il ne fait plus les autres.

Pour améliorer encore, si tu peux savoir si classer l'ordre des case du plus utilisé au moins .

Bon sourrage
 
Vieux 23/06/2003, 11h54   #6 (permalink)
Reeaz
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

Merci de ton aide pyrof, mais en fait j'ai réussi à faire marcher ma macro.
Pourtant, j'ai toujours un pb car dans ma collonne 7, j'ai des erreurs que je dois gérer (du type #N/A, div par 0), mais que je n'arrive pas à gérer!
Voici ce que j'ai essayé:
Sub Chiffre1()

fin = Range("F2").End(xlDown).Row
For i = 2 To fin
'Cells(i, 7).Select
'On Error Resume Next
On Error GoTo Errorhandler
If Cells(i, 7).Value = "Etat" Then
Cells(i, 11).Value = 1
ElseIf Cells(i, 7).Value = "NR" Then
Cells(i, 11).Value = 23
ElseIf Cells(i, 7).Value = "AAA" Then
Cells(i, 11).Value = 2
ElseIf Cells(i, 7).Value = "AA+" Then
Cells(i, 11).Value = 3
ElseIf Cells(i, 7).Value = "AA" Then
Cells(i, 11).Value = 4
ElseIf Cells(i, 7).Value = "AA-" Then
Cells(i, 11).Value = 5
ElseIf Cells(i, 7).Value = "A+" Then
Cells(i, 11).Value = 6
ElseIf Cells(i, 7).Value = "A" Then
Cells(i, 11).Value = 7
ElseIf Cells(i, 7).Value = "A-" Then
Cells(i, 11).Value = 8
ElseIf Cells(i, 7).Value = "BBB+" Then
Cells(i, 11).Value = 9
ElseIf Cells(i, 7).Value = "BBB" Then
Cells(i, 11).Value = 10
ElseIf Cells(i, 7).Value = "BBB-" Then
Cells(i, 11).Value = 11
ElseIf Cells(i, 7).Value = "BB+" Then
Cells(i, 11).Value = 12
ElseIf Cells(i, 7).Value = "BB" Then
Cells(i, 11).Value = 13
ElseIf Cells(i, 7).Value = "BB-" Then
Cells(i, 11).Value = 14
ElseIf Cells(i, 7).Value = "B+" Then
Cells(i, 11).Value = 17
ElseIf Cells(i, 7).Value = "B" Then
Cells(i, 11).Value = 18
ElseIf Cells(i, 7).Value = "B-" Then
Cells(i, 11).Value = 19
ElseIf Cells(i, 7).Value = "CCC" Then
Cells(i, 11).Value = 20
ElseIf Cells(i, 7).Value = "CC" Then
Cells(i, 11).Value = 21
ElseIf Cells(i, 7).Value = "D" Then
Cells(i, 11).Value = 22

'ElseIf IsNumeric(Cells(i, 7).Value) Then Cells(i, 11).Value = ""
End If
Next i

Exit Sub

Errorhandler:
'fin = Range("F2").End(xlDown).Row
'For i = 2 To fin
If IsError(Cells(i, 7).Value) = True Then Cells(i, 11).Value = ""
'ActiveCell.Offset(0, 4).Value = "toto"
'Next i

Resume Next


End Sub

Je voudrai en fait que chaque fois qu'il y une erreur de ce type, que la macro n'en tienne pas compte et renvoie rien ds la collonne 11.

QQun sait comment faire?
 
Vieux 23/06/2003, 12h31   #7 (permalink)
pyrof
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage


voila avec gestion d'erreur

Sub Chiffre1()
Dim valeur2 As Range
i = 2
While IsError(Cells(i, 7))
Cells(i, 11) = ""
i = i + 1
Wend
While Cells(i, 7) <> ""
Set valeur2 = Cells(i, 11)
If IsError(Cells(i, 7)) = False Then
Select Case Cells(i, 7)
Case "Etat": valeur2 = 1
Case "NR": valeur2 = 23
Case "AAA": valeur2 = 2
Case "AA+": valeur2 = 3
Case "AA": valeur2 = 4
Case "AA-": valeur2 = 5
Case "A+": valeur2 = 6
Case "A": valeur2 = 7
Case "A-": valeur2 = 8
Case "BBB+": valeur2 = 9
Case "BBB": valeur2 = 10
Case "BBB-": valeur2 = 11
Case "BB+": valeur2 = 12
Case "BB": valeur2 = 13
Case "BB-": valeur2 = 14
Case "B+": valeur2 = 17
Case "B": valeur2 = 18
Case "B-": valeur2 = 19
Case "CCC": valeur2 = 20
Case "CC": valeur2 = 21
Case "D": valeur2 = 22
Case Else: valeur2 = ""
End Select
End If
i = i + 1
While IsError(Cells(i, 7))
Cells(i, 11) = ""
i = i + 1
Wend

Wend

End Sub
 
Vieux 23/06/2003, 12h39   #8 (permalink)
Reeaz
Guest
 
Messages: n/a
Par défaut Re: pb de remplissage

Je te remercie, c'est hyper sympa!!
Bonne journée.
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 18h41.


(C) 2006 Excel Downloads