Problème de repport de contenu de cellule en macro

Bonjour,

Je dois créer un planning où l'on doit rentrer un numéro d'affaire et les heures que l'ouvrier à passer dessus chaque jour.

Etant donné qu'il peut avoir travaillé sur plusieurs chantiers dans la même journée et dans le mois, il y a une colonne supplémentaire permettant de faire un récapitulatif des affaires avec le nombre d'heure total passé sur l'affaire.

J'utilise cette macro :

Sub Macro3()

'

' Macro3 Macro

Dim num_chantier As String

Dim liste_num_chantier As String

Dim TestArray() As String

liste_num_chantier = ""

For a = 4 To 16 Step 3 ''Sur les colonnes 4, 7, 10, 13 et 16

For b = 5 To 35 ''sur les lignes 5 à 35

num_chantier = Feuil1.Cells(b, a)

If InStr(liste_num_chantier, num_chantier) = 0 Then ''si liste des chantiers ne contient pas le numéro de chantier nous l'insérons

If liste_num_chantier = "" Then ''Si la liste est vide

liste_num_chantier = num_chantier

Else ''Si la liste n'est pas vide

liste_num_chantier = liste_num_chantier & "," & num_chantier

End If

ElseIf InStr(liste_num_chantier, num_chantier) = 1 Then ''si liste des chantiers contient e numéro de chantier nous ne faisons rien : pour test. Peut être supprimé par la suite.

End If

Next b

Next a

''Split de liste_num_chantier dans la colonne

Données = Split(liste_num_chantier, ",")

For i = 0 To UBound(Données)

Feuil1.Cells(6 + i, 19) = Données(i)

Next i

End Sub

Si les numéros d'affaires sont dans l'odre croissant, la macro marche parfaitement. Cependant si l'affaire 15 est réalisée avant l'affaire 1 et 5, on ne retrouve que le numéro 15 dans le récapitulatif du mois.

Je ne vois pas du tout où pourrait se trouver l'erreur.

Ci joint un ficher essai.

Merci d'avance


ps : c'est le même problème pour 100 et 10 ...

16essai.xlsm (104.73 Ko)

Bonjour

Le problème vient du fait que 1 est contenu dans 15 ou pour un autre 5 est contenu dans 15, donc tu vois qu'il est déjà présent alors tu ne rajoutes pas

Au fait InStr retourne 0 si pas présent ou > 0 si présent (pas obligé que cela soit 1)

A tester

Édit: Changement de fichier

Bonjour,

Merci beaucoup ! ça marche parfaitement

Bonne journée.


Bonjour,

Merci beaucoup ! ça marche parfaitement

Bonne journée.


Rebonjour,

J'ai une question supplémentaire :

Toujours sur le même fichier, j'ai dans le vrai fichier 10 feuilles dont 9 idem à l'exemple que je vous ai donné et une appelée "Recapitulatif" qui fait le Recapitulatif total en prenant en compte le mois de tous les ouvriers (toujours avec le repport effectué avec ma macro).

Est-ce possible de créer une boucle ? ou doit-je remettre la macro pour chaque feuille ?

Merci encore

Bonjour

Je pense qu'avec une boucle cela devrait faire l'affaire

Prépares un fichier avec au minimum 2 feuilles en plus de la page Récap, afin de voir où tu veux écrire les données

Je pense que tu dois avoir 12 fois 3 colonnes pour récupérer les infos

Il faut connaitre la structure de ton fichier

Fais un exemple des données que tu as et le résultat que tu veux

Alors,

Voilà un exemple de mon fichier.

Le but est que le salarié rentre chaque jour ses heures avec le chantier qui correspond. A la fin du mois il y a un repport de numéro de chantier dans le récapitulatif de la feuille mais aussi dans le récap du mois dans la feuille RECAP.

Et cela pour les 9 salariés.

De plus, à la fin de l'année, il y a un repport dans le récap du salarié et dans la feuille récap pour tous les chantiers de l'année.

(Au fait, ta macro marche parfaitement mais n'évite plus les doublons).

Merci encore pour ton aide.

(Si tu arrives à m'aider pour cette macro, j'essayerai de l'adapter pour chaque mois pour m'entrainer un peu plus )

14essai-recap.xlsm (206.29 Ko)

Bonjour

C'est une erreur ou c'est voulu ?

2 pages identiques : Mêmes mois

A te lire

Oui oui c'est normal,

Chaque salarié a sa propre feuille qui est un modèle type

Bonjour

A vérifier soigneusement

Merci beaucoup,

Je vais essayer de réadapter à 9 feuilles et au 12 mois.

Alors, ça c'est totalement adapté à mon nombre de feuilles.

Cependant, je n'arrive pas à voir où je dois adapter pour les mois.

Sur une feuille, il y a les 12 mois l'un en dessous de l'autre comme dans l'exemple que je vous ai envoyé.

Mais je n'arrive pas à faire le repport à partir de Mars pourtant j'ai agrandis le nombre de ligne dans la macro

Bonjour

Il faut que tu changes la ligne

  For J = 5 To 39 Step 34               ' 2 mois par page

Par

  For J = 5 To 379 Step 34              ' 12 mois par page

A moins qu'il y ait un problème que j'ai zappé

Alors j'ai réussi à changer par contre il y a un problème avec une cellule fusionnée et je ne sais pas où se trouve réellement le problème.

ci-joint, un fichier type avec la macro changée contenant le problème


Oui oui, j'ai remplacé et même le 34 par 35 car il reportait le "N°" dans le récap sinon.

Mais je ne vois pas où est le problème de la cellule fusionnée

Rebonjour,

En fait j'ai trouvé le problème, j'ai rajouté des lignes de façon à ce que les mois contiennent le même nombre de jours.

Merci beaucoup pour ton aide, bonne fin de journée

Rechercher des sujets similaires à "probleme repport contenu macro"