Debutante en VBA

Bonjour,

Je suis debutante en VBA. Je voudrais copier sur une feuille des donnees specifique dans des cellules pour un code donne. Je suis entrain de m'entrainer en mettant value =0 pour else. Cela ne marche pas et j'ai du mal a nommer mes cellules. Est ce que quelqu'un pourrait m'aider?

Sub BEL01()
If Workbooks("IRF Follow up").Worksheets("IRF").Range("C93").Value = "8BEL01" Then
Worksheets("Invoicing Addresses").Range("C1.C5").Copy
Worksheets("IRF").Range("C17.C21").Paste
Else
Worksheets("IRF").Range("C17.C21").Value = 0
End If
End Sub
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. Contributeur
    WorkBook c'est le nom du classeur, WorkSheet le nom de la feuille
    Tu a 2 classeurs ?
    1. Contributeur
      Hello
      je te copie-colle vite un bout de code que j'ai écris y'a longtemps pour une applic eXcel :

      With Worksheets(1)
      .Range(.[B5], .[B5].End(xlDown)).Copy Worksheets(2).[A3]
      End With

      Le numéro x dans Worksheets(x) correspond à la POSITION de la feuille dans la liste des onglets.

      Tchuss
      1. Non cela ne fonctionne pas. Sinon on est d'accord que par workbook c'est le nom de mon fichier. Par ce que je ne vois pas autre chose...
        1. Contributeur
          La 1ère ligne est conforme pour la syntaxe.
          Faire un copier/Coller du nom de tes onglets, un espace est vite ajouter/oublier surtout dans les noms d'onglet.
          Tu dis
          1. Cela ne fonctionne pas il me mette erreur 9 sur la premiere ligne. Les noms des books sheets etc... sont comment je les ai nomme dans ce workbook.

            C'est comme cela qu'il faut faire? Autrement?
            1. Contributeur
              Bonjour,
              Essaye avec..
              Sub BEL01()
              Dim Cel As Range
                  If Workbooks("IRF Follow up").Worksheets("IRF").Range("C93").Value = "8BEL01" Then
                      Worksheets("Invoicing Addresses").Range("C1.C5").Copy
                      Worksheets("IRF").Range("C17.C21").Paste
                  Else
                      For Each Cel In Worksheets("IRF").Range("C17.C21")
                          Cel.Value = 0
                      Next Cel
                  End If
              End Sub

              A+
              PS: Je suppose que tu emploi une version anglaise d'excel, en version française le séparateur de plage c'est :
              Range("C17:C21")