Ecrire dans une autre feuille que la feuille active

Résolu
cs_asphodele Messages postés 4 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 13 mars 2009 - 13 mars 2009 à 10:37
cs_asphodele Messages postés 4 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 13 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
******************************

6 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
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
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
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
0
cs_asphodele Messages postés 4 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 13:13
Bonjour,

quand je le fait tourner, le programme m'indique l'erreur suivante:
Error 1004: application defined or object defined error
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
13 mars 2009 à 15:46
et sur quelle ligne  il la met cette erreur ?

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0

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

Posez votre question
cs_asphodele Messages postés 4 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 15:54
Worksheets("OtherSheet").Cells(r, c).Value = Choice
Presque tout à la fin
0
cs_asphodele Messages postés 4 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 16:33
Merci de m'avoir mis le nez sur mon erreur, c'était tout simplement ca.
0
Rejoignez-nous