Incrémentation avec changement de colonne avec conditions

cs_Guigzz Messages postés 13 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 17 novembre 2006 - 14 sept. 2006 à 16:10
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 19 sept. 2006 à 15:22
Bonjour j'ai un petit problème d'execution après compilation.L'erreur dans mon code se situe au niveau de ma premiere condition sur un "Range", le message d'erreur etant le suivant:
Erreur d'execution 1004 : la methode 'Range' de l'objet'_Global' a échoué
Je mes mon code ci-dessous merci d'avance

Sub Suivi_contestation()
Dim prem As String
Dim deux As String
Dim trois As String
Dim var1 As Integer
Dim var2 As Integer
Dim var3 As Integer



prem = "F"
deux = "G"
trois = "I"
var1 = Asc(prem)
var2 = Asc(deux)
var3 = Asc(trois)




ET3:
 i = 5
Do Until Range("A" & i).Value = ""




   If Range(prem & i).Value = "" Then
   Range("D" & i).Value = "Attente envoi du courrier au CEA"
   GoTo ET1
   Else
   If Range(deux & i).Value = "" Then
   Range("D" & i).Value = "Attente réponse CEA"
   GoTo ET1
   Else
   If Range(trois & i).Value = "OK" Then
   Range("D" & i).Value = "Imputation modifiée"
   GoTo ET1
   Else
   If Range(trois & i).Value = "" Then
   Range("D" & i).Value = "Remplir la cellule réponse MOE"
   GoTo ET1
   Else
   If Range(trois & i).Value = "KO" Then
   GoTo ET2
   End If
   End If
   End If
   End If
   End If
ET1:
i = i + 1
Loop
ET2:
var1 = Asc(prem) + 4
prem = Chr(var1)
var2 = Asc(deux) + 4
deux = Chr(var2)
var3 = Asc(trois) + 4
trois = Chr(var3)
GoTo ET3
End Sub

6 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
14 sept. 2006 à 17:01
Salut,

C'est pas très clair tout ca... Qu est ce que doit faire exactement ton bout de code?

NB:
- Les Goto ET1 sont inutiles me semble t il
- Goto ET2 peut etre remplacer par Exit Do
- Cette fonction ne se termine Jamais me semble t il

@+,   Ju£i?n
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
14 sept. 2006 à 18:22
Si la fonction s'arrête dès que la cellule A... est vide !

Sinon, astuce pour tes If, qui sont très mal présenté :

If Range(prem & i).Value = "" Then
Range("D" & i).Value = "Attente envoi du courrier au CEA"
GoTo ET1
Else
If Range(deux & i).Value = "" Then
Range("D" & i).Value = "Attente réponse CEA"
GoTo ET1
Else
if Range(trois & i).Value = "OK" Then
Range("D" & i).Value = "Imputation modifiée"
GoTo ET1
Else
If Range(trois & i).Value = "" Then
Range("D" & i).Value = "Remplir la cellule réponse MOE"
GoTo ET1
Else
If Range(trois & i).Value = "KO" Then
GoTo ET2
End If
End If
End If
End If
End If

Ensuite pour ton problème :

If Range(prem & i).Value = "" FAUX !!!!!!!!
D'après la catégorie, tu n'est pas en VBA mais VB6 ! Il faut donc faire un Set de l'appli Excel

@++
0
cs_Guigzz Messages postés 13 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 17 novembre 2006
15 sept. 2006 à 09:20
En fait ce code sert à indiquer l'etat d'avancement de courrier concernant des contestations sur l'imputation de problème sur un chantier. Il faut en fait  indiquer l'etat d'avancement quand les dates de courrier sont introduites dans les cellules, le nombre d'aller-retour du courrier n'etant pas defini a l avance. Quand à ce qui m'est dit precedemment VBA ou VB6,... je suis debutant et je ne fais pas trop la difference alors quand à savoir si j utilise l'un ou l'autre...
@+ 
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 sept. 2006 à 08:46
Salut,
Pour VB6 ou VBA: Développe tu directement avec le VB d'Excel (VBA) ou bien a l'aide de Microsoft Visual Basic 6

> mortalino: (salut) If Range(prem & i).Value = ""    FAUX !!!!!!!! pourquoi est ce faux????

@+,   Ju£i?n
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Guigzz Messages postés 13 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 17 novembre 2006
19 sept. 2006 à 13:24
En fait j utilise VBA .... et j'ai réussi à le faire marcher mais merci quand même
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
19 sept. 2006 à 15:22
Salut Julien, 


j'ai mis Faux car il était dans la catégorie VB6.
en vb6, ça donne ça :

If xlSheet.Range(prem & i).Value = ""

Bien entendu, après avoir référencé l'appli, le classeur et la feuille.

Certe, ce fût un détail comme ça en passant, mais qui à son importance.
Mais bon, s'il est en VBA, il n'y as pas de problèmes

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
Rejoignez-nous