probleme dans code macro

loisphil81

XLDnaute Junior
Bonjour forum

j'ai un tableau dans lequel je souhaiterai recopier des valeurs
tout fonctionnais bien mais il a fallu que rajoute des noms dans liste
et depuis ca ne fonctionne plus
le fichier joint est assez explicite
merci pour votre aide
 

Pièces jointes

  • Suivi des poses compteur 23-08-17.xlsm
    41 KB · Affichages: 42

Bebere

XLDnaute Barbatruc
bonsoir
il y a des noms qui ne correspondent pas
Code:
Sub report()
' récupération dernier membre effectif
    Dim nbEffectif As Long
    nbEffectif = Sheet2.Range("A1048576").End(xlUp).Row    'dernière ligne remplie
    ' récupération dernire colonne Histo compteur individuel
    Dim nbColonnes As Long
    nbColonnes = Sheet2.Range("XFD4").End(xlToLeft).Column    'dernière colonne
    ' récupération derniere date (colonne F)
    Dim nbDates As Long
    nbDates = Sheet2.Range("F1048576").End(xlUp).Row    'dernière ligne remplie

    Dim plageHistoCompteur As Range
    Dim plageDates As Range
    ' plage histo compteur individuel : G3 à CX3 dans le cas present
    ' ('nbColonnes + 4' car un nom correspond à 4 cellules fusionnees RDV/GRIP/OK/KO)
    Set plageHistoCompteur = Sheet2.Range(Cells(3, 3), Cells(4, nbColonnes))
    ' plage des dates : F5 à F28 dans le cas present
    Set plageDates = Sheet2.Range("F5:F" & nbDates)
    Dim celNom As Range
    Dim nom As String
    Dim celDate As Range
    Dim trig As Integer, ColNom As Long

    ' boucle sur chaque membre effectif
    For x = 5 To nbEffectif

        For Each celDate In plageDates      ' verification date correspond à la date du jour sinon on fait rien
            If celDate.Value = Date Then
                ' si on est ici c'est qu'on est dans la ligne de la date du jour
                ' on cherche dans la plage du histo compteur la cellule qui correspond au nom du membre
                ' exemple : on cherche la valeur de A5 on la trouve dans G3, on chercher la valeur de A6 on la trouve dans K3
                                nom = Sheet2.Cells(x, 1).Value
                '                Set celNom = plageHistoCompteur.Find(Replace(nom, "...", ""), LookIn:=xlValues, lookat:=xlPart)
                For Each celNom In plageHistoCompteur
                    If celNom Like nom & "*" Then ColNom = celNom.Column: Exit For
                Next
                ' on copie dans la cellule à l'intersection :
                ' - de la ligne date du jour
                ' - de la colonne de la cellule (où on a trouvé le nom) en modulo 3 puisqu'un nom est écrit sur 4 cellules
                ' la valeur de la cellule en Bx, Cx, Dx, Ex...
             If ColNom > 0 Then
                For trig = 2 To 5
                    Sheet2.Cells(celDate.Row, ColNom + trig - 2).Value = Sheet2.Cells(x, trig).Value
                Next trig
                ColNom = 0
              End If
            End If
        Next celDate
    Next x
End Sub
 

loisphil81

XLDnaute Junior
Bonjour forum
Bonjour Bebere
merci de ton temps
Il me semble avoir été déjà en contact avec toi si c'est bien toi
il y a quelques années au sujet d'un gros dossier pour mon ancien job sur des stats de contrôle qualité
j'ai connu q'un Bebere sur forum coïncidence !
je te joint le fichier complet afin de mieux comprendre mes soucis

merci de ton aide
si ton temps le permet
Phil
 

Pièces jointes

  • Suivi des poses compteur 24-08-17.xlsm
    80.8 KB · Affichages: 39

loisphil81

XLDnaute Junior
bonsoir Berbère
j'ai pas compris la fonction du user form je n'arrive pas a l'afficher a ouverture du classeur
y'a qq années j'aurais pu comprendre mais j'ai laisser tomber le vba depuis fort longtemp
je dois m'y remettre mais c'est compliqué je viens d'occuper un nouveau poste alors je dois automatiser certains fichiers en particulier celui ci.
j’espère pouvoir décortiquer ça avec ton aide
 

Bebere

XLDnaute Barbatruc
Phil
tu ne parles pas de l'userform
à l'ouverture de userform Suppourcent 'module2 est exécuté
tu fais les corrections aux noms dans textbo1 et 2, confirme par bouton corriger
si fini bouton terminer
le tableau est mis dans feuille stats... en b3,ensuite TableauQ 'module1 est exécuté
la 1ère étape(nouvelles données) pourrait aussi se faire via userform
pour feuille saisie en ligne 3,si je comprend bien les noms existant restent
il faut ajouter les nouveaux noms
 
Dernière édition:

loisphil81

XLDnaute Junior
Berbère :(
je n'ai pas besoin de changer les noms avec user form car ceux que j'importe (en données externe---> les noms et les valeurs)en copier coller, sont déjà ceux dont j'ai besoins .j'ai pas besoin d'en rajouter j’épure seulement et je tri A-Z c'est tout.
Une fois fini, je copie tout ça dans la feuil "STATS COMPTEUR" et je valide et çà me fais mon histogramme sur la semaine, le mois, etc... tout techniciens réunis ça !! c'est la première opération. C'est bouclé !!

je me sert ensuite des valeurs du tableau 'Quantitatif journées tous poseurs' feuil
STATS COMPTEUR
je colle ces données dans la feuil "SAISIE"
....puis je valide avec le bouton REPORT et c'est la que ça par en vrille comme j'ai déjà écrit en G3:CX3 tout l'effectif complet (pour le moment) ça bug parce que les noms ne sont pas a la bonne place il faudrait que la macro recherche les noms correspondants pour mettre les valeurs a la bonne place sinon toutes les valeurs pour les histogrammes vont être mélangés et ça ne voudra rien dire.
pas simple d'expliquer on peut s'appeler si tu n'y vois pas inconvénient peut être plus facile a expliquer
après tout ce temps !
 

Statistiques des forums

Discussions
312 147
Messages
2 085 768
Membres
102 969
dernier inscrit
pizza