Problème de code VBA

luke3300

XLDnaute Impliqué
Bonjour le forum,

il y a queques temps d'ici, vous m'aviez aidé à fire un fichier qui m'a déjà épargné pas mal d'heure de travail inutile. Seuleent, j'ai dû modifier la mise en page de celui-ci et dés lors, le code VBA ne fait plus son boulot correctemet.

Quelqu'un pourrait-il m'aider pour l'adapter correctement? J'essaye depuis plusieurs jours mais sans résultat vu que je n'y connais rien ...

Je vous joins le fichier pour plus de facilités. Une info, je pense qu'il serait préférable de rendre ce code "dynamique".

Merc d'avance à ceux et celles qui pourront m'aider et bon dimanche tout le monde.
 

Pièces jointes

  • Relevé mensuel des ENAs - 2009.zip
    35.9 KB · Affichages: 30
Dernière édition:

luke3300

XLDnaute Impliqué
Re : Problème de code VBA

Bonjour Job75 et merci pour ton intérêt,

le fichier est zippé et a été fait avec excel 2003. Tu ne devrais donc pas avoir de problème pour l'ouvrir une fois qu'il est dézippé. Je viens de le tester et je n'ai aucun soucis.

Je l'upload non zippé ici: RapidShare: 1-Click Webhosting

J'espère que ça ira ...
 

pascal21

XLDnaute Barbatruc
Re : Problème de code VBA

bonjour
pour le lien donné, je confirme on ne peut pas l'ouvrir avec excel 2003
je me suis servi du 2eme
tu aurais du mettre le lien du post qui à permis de réaliser ce tableau
quelques explications sur le fonctionnement auraient été le bienvenue
à te lire
 

Cousinhub

XLDnaute Barbatruc
Re : Problème de code VBA

Bonjour,

si j'ai bien compris, tu as augmenté ton nombre de lignes dans les 2 tableaux,
et tu veux définir ces deux tableaux
Essaie avec ce code :

Code:
Sub totaux()
Dim tablo As Variant
Dim i As Long, j As Byte, k As Long, s As Byte
Dim PremLig As Long, DerLig As Long, DerLig2 As Long

For s = 1 To 3
    With Sheets(s)
    PremLig = .Columns("A:A").Find(What:="Sce", LookAt:=xlWhole).Row + 1
    DerLig = .Columns("A:D").Find(What:="Remplaçants", LookAt:=xlWhole).Row - 1
    DerLig2 = .Columns("A:A").Find(What:="Total", LookAt:=xlWhole).Row - 2
    
    tablo = .Range(.Cells(PremLig, 1), .Cells(DerLig, 32))

    For i = DerLig + 2 To DerLig2 Step 2
        For j = 5 To 31
            If .Cells(i, j) <> "" Then
                For k = 1 To UBound(tablo)
                    If tablo(k, 1) = .Cells(i, j) Then
                        tablo(k, UBound(tablo, 2)) = tablo(k, UBound(tablo, 2)) + .Cells(i + 1, j)
                    End If
                Next k
            End If
        Next j
    Next i

    For i = 1 To UBound(tablo)
        Sheets("Totaux").Cells(i + 2, s + 10) = tablo(i, UBound(tablo, 2))
    Next i
    
    Erase tablo
    End With
Next s
End Sub

PremLig te donne le numéro de ligne de début (on cherche "Sce", et on ajoute 1 à la ligne)
DerLig te donne le numéro de ligne de fin (on cherche "Remplaçants", et on retire 2
DerLig2 te donne le numéro de ligne de fin du deuxième tableau ("Total")-2

Si tu veux rajouter une feuille (la feuille "Electoraux" n'est pas prise en compte, tu fais :

Code:
For s = 1 To 4

Si j'ai bien tout compris....

Edit : je viens de lire le post initial, et hervé t'avait donné pratiquement la même solution.....
 
Dernière édition:

luke3300

XLDnaute Impliqué
Re : Problème de code VBA

Bonsoir bhbh et le forum,

merci pour ton aide, je vais regarder et tester ça à l'aise dés demain matin et je ne manquerais pas de te dire le résultat.

Bonne nuit tout le monde et encore merci bhbh.
 

luke3300

XLDnaute Impliqué
Re : Problème de code VBA

Bonsoir tout le monde,

le fichier à l'air de marcher! Je n'ai pas encore su le tester avec des données correctes mais je le ferais ce w-e.

J'ai toutefois déjà une autre question à son sujet.

bhbh tu m'expliques clairement comment fonctionnent les lignes mais si maintenant, je décide de prendre en compte la feuille "electoraux", il me faudra ajouter des colonnes pour en avoir aussi le résumé ... alors que dois-je modifier dans le code dans ce cas-là??

En tout cas, déjà un grand merci :)
 

luke3300

XLDnaute Impliqué
Re : Problème de code VBA

Bonjour le forum,

en fait, je cherche ce que je dois modifier dans le code pour décaler les résultats en fonction de l'ajout d'une colonne.

Je m'explique:

si j'ajoute une colonne dans la feuille "Totaux" juste avant le D et que j'ajoute aussi une colonne dans la grille de synthèse, la synthèse que j'obtiens avec le code va être décalée et mes services ne s'afficheront plus mais j'obtiendrais des totaux partout sur la grille.

Merci d'avance pour vos lumières et bonne journée
 

luke3300

XLDnaute Impliqué
Re : Problème de code VBA

Bonjour le forum,

je viens d'ajouter 2 lignes dans la 1ere partie de ce fichier (ligne 39 et 40) et maintenant lorsque je fais la détection, le débogueur se déclenche et me met la ligne suivante en erreur: "Erase tablo"

Quelqu'un a-t-il une idée sur le problème?

Merci d'avance et bonne journée à tous et toutes.
 

Discussions similaires

Réponses
13
Affichages
790

Statistiques des forums

Discussions
312 913
Messages
2 093 535
Membres
105 752
dernier inscrit
fred13340