cs_asphodele
Messages postés4Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention13 mars 2009
-
13 mars 2009 à 10:37
cs_asphodele
Messages postés4Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention13 mars 2009
-
13 mars 2009 à 16:33
Bonjour à tous,
Ca fait quelques jours que je cherche une solution à mon problème obscur (du moins pour moi) mais je n'ai pas encore trouvé la lumière. Si le sujet existe déjà, toutes mes excuses je ne l'ai pas trouvé.
Je travaille sous Excel 2003 en Anglais et je voudrais coder en VBA une macro me permettant d'écrire dans une autre feuille que ma feuille active.
Si j'utilise la configuration pour obtenir le résultat dans la feuille active, ca marche comme sur des roulettes. Mais quand je prends la configuration pour écrire dans une autre feuille j'ai un message d'erreur. Si je comprends bien il me dit que la déclaration de ma Sub n'est pas correcte.
Mon idée serait donc d'utiliser la déclaration Worksheet_Change(), est-ce correct? Si oui comment l'associer à un bouton (type Form ou ActiveX)? Si non, que faudrait-il faire?
Ci dessous le code incriminé.
Merci d'avance.
****************************
Private Sub SubmitInverter_Click()
' declarations
Dim Choice As String
Dim c As Integer 'column in sheet OtherSheet
Dim r As Integer 'row in sheet OtherSheet
Dim YesNo As Boolean
Dim i As Integer 'row offset
Dim j As Integer 'column offset
'Find r
r = (Range("BS6").Value - 1) * 27
c = 3
' r = 1 'for test in active sheet
' c = 68 'for test in active sheet
'Find the different choices
For j = 0 To 39 'pour parcourir les colonnes concernées dans la feuille active
YesNo = False
For i = 2 To 20 'pour parcourir les lignes concernées dans la feuille active
If Range("BP8").Offset(i, j).Value > 0 Then
YesNo = True
End If
Next
If YesNo = True Then
Choice = Range("BP8").Offset(0, j).Value & " " & _
Range("BP8").Offset(1, j).Value
Worksheets("OtherSheet").Cells(r, c).Value = Choice
' ActiveSheet.Cells(r, c).Value = Choice 'for test in active sheet
c = c + 3
' c = c + 1 'for test in active sheet
End If
Next
End Sub
******************************
A voir également:
Ecrire dans une autre feuille que la feuille active
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 13 mars 2009 à 16:11
quelles sont les valeurs de r et c quand tu as cette erreur
quelle est la valeur contenue dans BS6 ?
car r = (Range("BS6").Value - 1) * 27 va renvoyer une valeur négative si bs6 est vide
or la premiere rangée est la rangée numero1 donc r ne DOIT pas etre inférieur à 1
fais le test
Worksheets("OtherSheet").Cells(-1, c).Value = Choice et tu auras la meme erreur qu'actuellement
de meme que
Worksheets("OtherSheet").Cells(0, c).Value = Choice
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 13 mars 2009 à 12:18
bonjour
quel est exactement le message d'erreur et sur quelle ligne de ton code il se produit ?
autrement rien ne me semble clocher ...
est tu sûr que la feuille ou tu veux écrire s'appelle bien "OtherSheet" avec les majuscules et minuscules respectées ?
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE