Erreur 1004 de mon code sur vba excel

aprentizorrrr Messages postés 6 Statut Membre -  
thev Messages postés 2006 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une feuille "heures imputees" dans laquelle j'ai un tableau croisé dynamique avec 6 colonnes,

mois technicien client affaire chapitre heures

je voudrais 2 totales des heures par affaire

un total pour CHESI Christophe et VINCENT Jean-claude => BE ( partie électrique)
un total pour le reste des techniciens => SOFT ( programmation d'automate)

je dois pouvoir récupérer le totale des heures pour c'est 2 groupe en fonction des chapitres ( A02 L05 ..)

exemple final

affaire Chapitre BE SOFT

XX.XX.XXXX A02 54 123

voici mon code dans un moduel 1

Option Explicit

Dim N°AFFAIRE As String

Dim CHAPITRE As String

Dim HEURES As Integer

Sub Remplir_Bilan()

' Définition des variables générales
Dim A As Integer

HEURES = 0
CHAPITRE = Range("B")
'Rechercher les heures Imputées sur N°AFFAIRE & CHAPITRE
For A = 2 To 2600

Worksheets("Heures Imputees").Activate
If (Worksheets("Heures Imputees").Range("d" & A).Value = N°AFFAIRE) And CHAPITRE = "A02" Then
HEURES = Worksheets("Heures Imputees").Cells(A, 7).Value + HEURES
End If
Next A

End Sub

j'ai une erreur 1004, et je suis meme pas sur que mon code soit correcte quelq'un peut maider svp, c'est urgent et important, j'ai beau chercher sur le net des solutions je n'y arrive pas, je debute en vba excel

3 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    Bonjour,

    A première vue il y a déjà cette syntaxe qui n'est pas correcte :

    CHAPITRE = Range("B")

    C'est par exemple CHAPITRE = Range("B1") qui est correct

    et même pour être plus rigoureux : CHAPITRE = Range("B1").value

    A+
    Cordialement,
    0
    1. aprentizorrrr Messages postés 6 Statut Membre
       
      je cherche a mettre en condition ma colonne E (chapitre) = A02
      peut etre doit je mettre avant le for
      CHAPITRE = Worksheets("Heures Imputees").Range("E" ).Value
      qu'en pense tu
      j'ai mis cette nouvelle ligne a la place de Range("E") (c'etait E enfait et non B) et j'ai toujours le probleme
      0
  2. thev Messages postés 2006 Date d'inscription   Statut Membre Dernière intervention   721
     
    Sub Remplir_Bilan()

    ' Définition des variables générales
    Dim A As Integer
    Dim numéros_affaire As Range
    Dim chapitre As Range

    HEURES = 0

    Set numéros_affaire = Intersect(Sheets("Heures Imputees").Columns("D").Rows, Sheets("Heures Imputees").UsedRange) 'restriction à la plage utilisée

    Set chapitre = Sheets("Heures Imputees").Columns("E").Rows

    'Rechercher les heures Imputées sur N°AFFAIRE & CHAPITRE
    For Each no_affaire In numéros_affaire
    A = no_affaire.Row
    If no_affaire.Value = N°AFFAIRE And chapitre.Rows(A).Value = "A02" Then
    HEURES = Worksheets("Heures Imputees").Cells(A, 7).Value + HEURES

    End If

    Next
    0
    1. aprentizorrrr Messages postés 6 Statut Membre
       
      merci de ton aide, il me dit no_affaire variable non definie, j'ai donc declare no_affaire as range, et maintentant il me dit : erreur d'execution 9 l'indice n'appartient pas a la selection

      si tu as encore le temps de m'aider sa serait sympas merci
      0
  3. thev Messages postés 2006 Date d'inscription   Statut Membre Dernière intervention   721
     
    C'est l'option Explicit qui provoque la demande de définition de la variable.
    Pour l'erreur d'exécution, à quelle ligne se situe l'erreur ?
    0