Ecrire dans une autre feuille que la feuille active [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
13 mars 2009
-
Messages postés
4
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
13 mars 2009
-
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

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

Bonjour,

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

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
4
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
13 mars 2009

Worksheets("OtherSheet").Cells(r, c).Value = Choice
Presque tout à la fin
Messages postés
4
Date d'inscription
vendredi 13 mars 2009
Statut
Membre
Dernière intervention
13 mars 2009

Merci de m'avoir mis le nez sur mon erreur, c'était tout simplement ca.