cs_emab
Messages postés3Date d'inscriptionlundi 4 août 2008StatutMembreDernière intervention28 juillet 2009
-
28 juil. 2009 à 13:56
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
29 juil. 2009 à 08:53
Bonjour,
j'ai ecrit un code en VBA mais et ça marche au niveau du parcour de la plage des cellules mais, le probleme c'est que y a pas d'affectation dans les cellules cibles,
donc merci pour votre aide ....
voici mon code (pas tres long) :
Sub Bouton1_QuandClic()
Dim code, debit, credit As String
worksheets("A").Select
Range("a2").Select
While ActiveCell.Value <> ""
code = ActiveCell.Value
debit = Val(ActiveCell.Offset(0, 2))
credit = Val(ActiveCell.Offset(1, 3))
Worksheets("BAL-N").Select
Range("b3").Select
While ActiveCell.Value <> Empty 'ActiveCell.Value <> code
If ActiveCell.Value = code Then
If debit <> 0 Then
ActiveCell.Offset(0, 2).Value = Val(debit)
Else
ActiveCell.Offset(0, 3).Value = Val(credit)
End If
End If
ActiveCell.Offset(1, 0).Select
Wend
Sheets("A").Select
ActiveCell.Offset(1, 0).Select
Wend
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 28 juil. 2009 à 14:34
Salut
La nouvelle zone de saisie des messages du forum offre la possibilité de coller du code.
Ce serait bien de l'utiliser !
Cela permetrait de conserver l'indentation du code sans lequel il devient rébarbatif de lire ces lignes sans couleurs.
Code refaçonné :
Sub Bouton1_QuandClic()
Dim code, debit, credit As String
' Cette ligne ^^ ne signifie pas que chaque variable sera de type String
' Il faut répéter le type pour chacune
' Pourquoi dimensionner en String alors que tu mets des chiffres dedans ?
worksheets("A").Select
Range("a2").Select
While ActiveCell.Value <> ""
code = ActiveCell.Value
debit = Val(ActiveCell.Offset(0, 2))
credit = Val(ActiveCell.Offset(1, 3))
Worksheets("BAL-N").Select
Range("b3").Select
While ActiveCell.Value <> Empty 'ActiveCell.Value <> code
If ActiveCell.Value = code Then
If debit <> 0 Then
ActiveCell.Offset(0, 2).Value = Val(debit)
Else
ActiveCell.Offset(0, 3).Value = Val(credit)
End If
End If
ActiveCell.Offset(1, 0).Select
Wend
Sheets("A").Select
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Pour tes histoires de "ça marche pas", pas le temps d'analyser un programme sans savoir ce que tu cherches à faire et d'en déduire les erreurs.
Apprends à débuguer avec les touches F9, F8 et la fenêtre de debug (Ctrl-G) ou le survol des variables avec la souris
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 juil. 2009 à 08:53
[quote=règlement]11.
On pense à laisser un petit message lorsqu'un problème est résolu et à cliquer sur le bouton «réponse acceptée».
Ce bouton sert à valider la ou les réponses qui conviennent au problème indiqué. Il sert aussi de remerciement pour les membres qui ont apporté la/les bonnes réponses. Enfin une réponse validée est bien plus facile à retrouver lors de recherches sur le forum. N'oubliez pas qu'un forum ne sert pas qu'à poser sa question!/quote