Réorganiser un tableau

Bonjour à vous,

J'ai besoin de votre aide.

J'ai un tableau de données à utiliser pour sortir un rapport mais je bug sur la façon de m'y prendre, je crois que c'est bien plus compliqué que les petites bases de vba que j'ai pu apprendre ces dernières semaines, et en formules excel je ne trouve pas de moyen d'y parvenir.

Voici mon fichier. Dans la seconde feuille nommée "mise en forme" vous avez mes données (que j'ai retravaillées sur base de mon export brut en première feuille, mais que je vous ai laissée au cas où vous préféreriez travailler les données sous cette forme), et en troisième feuille "rapport" vous avez ce à quoi je cherche à arriver.

Pour chaque personne je cherche donc à arriver à un rapport qui me donne, pour chaque jour des semaines et/ou impaires, les heures contractuelles et les heures planifiées, et ainsi déceler les contrats à revoir. Pour la suite du rapport je peux me débrouiller, mais pour arriver à cette mise en forme je ne trouve pas comment m'y prendre.

Un grand merci pour votre aide.

Bonjour

Dans ton exemple, la feuille "Export données" couvre, d'après le titre, la période allant du 6/9/2021 au 19/9/2021, soit 2 semaines.

Ne devrait-on pas retrouver toutes ces dates sur la feuille "Rapport", aussi bien pour les heures contrat que pour les heures planning ?

Bye !

Hello,

Salut gmb

Voici une première version sur 15 jours.

++

Bonjour,
Une petite contributiuon.
Cdlt.

12comparatif-forum.xlsx (130.09 Ko)

Bonjour à tous les ,

Merci pour votre aide. Malheureusement je galère toujours au même endroit...

Rag02700 ta solution me semblait la plus adaptée mais je n'arrive pas au résultat que je recherche et ton code est bien plus high level que ce que je comprends du VBA au jour d'aujourd'hui : je ne suis pas parvenue à le modifier.

Je vous remets mon fichier en pièce jointe. A la feuille "Calcul", si je parviens à écrire ces conditions en VBA je pense que je devrais arriver à ce dont j'ai besoin :

Je souhaiterais écrire que :

Si une cellule de la plage C3:N3 est vide

et B1=B2

et A1=A2

Alors delete la cellule

Et ce pour chacune des lignes de mon tableau

J 'ai cherché sur de nombreux sites et forums

hier et ce matin mais je ne parviens pas à trouver ce dont j'ai besoin

Je pense que si j'arrive à lui demander ça je parviendrai au résultat recherché et je n'aurai plus qu'à supprimer les lignes en trop, pour obtenir deux lignes par personne : un horaire semaine paire et une horaire semaine impaire (contrat et planning).

Désolée de revenir vers vous sans avoir pu mettre en pratique vos solutions, mais je galère dessus depuis vendredi ;)

Bonne journée à tous

J'ai essayé ceci (même si ce n'est que sur une ligne, il faut encore l'adapter à tout le tableau) mais ça ne me supprime pas la cellule

Sub test()

If (Range("b3").Value = Range("b4").Value + Range("a3").Value = Range("a4").Value) And (Range("d3").Value = "") Then

Cells.Delete
End If

End Sub

Bonjour,
Quid de la solution TCD ?
Cdlt.

Bonjour Jean-Eric

Alors mon souci c'est que j'ai un TCD soit en semaine paire soit en impaire, mais ce que je cherche à obtenir c'est un tableau avec le nom et 2 lignes à la suite, l'une en horaire paire et l'autre en horaire impaire (contrat et planning). Les dates n'ont pas d'importance, elles sont là juste pour me dire si c'est une semaine paire ou impaire.

C'est sur cette base que je pourrai dire aux employés si le contrat du travailleur est à revoir

Bonjour,
Une autre présentation des données ?
Le TCD permet certains aménagements des résultats.
Cdlt.

On se rapproche mais il me faut les jours de la semaine (ensuite je comparerai et ça je pourrai m'en sortir je crois)

Ce qu'il me faudrait c'est ceci

capture

Pour l'obtenir en macro j'en suis arrivée là :

Sub test3()
Dim nbligne As Long, I As Long
nbligne = Range("A3").CurrentRegion.Rows.Count

For I = nbligne To 2 Step -1
If (Range("B" & I).Value) = (Range("B" & I - 1).Value) And (Range("A" & I).Value) = (Range("A" & I - 1).Value) And (Range("C" & I).Value) = "" Then
Rows(I).Delete
End If
Next I
End Sub

Mais forcément ça ne prend pas en compte mes cellules en colonnes D à N dans le troisième AND

Et le but n'est pas de rows.delete mais de supprimer la cellule, pas la ligne mais il ne me le prend pas en range.delete

Idéalement il me faudrait une macro qui demande à Excel

Depuis la dernière ligne jusqu'à ma ligne 3

Si le contenu de ma cellule A=A-1 + B=B-1 + la cellule est "", et ce pour toutes mes cellules entre C et N

ma cellule est supprimée

Re,
Et je persite avec l'utilisation de TCDs.
Cdlt.

10comparatif-forum.xlsx (150.21 Ko)

Si je supprime le filtre de la première lettre j'ai une liste qui fonctionne. Par contre comme c'est un TCD ça va me poser souci pour la suite de ma macro car je vais ensuite devoir extraire les données pour certains jours (différents à chaque fois)

Question sur les TCD : quand on exécute une macro par un bouton "1 clic" qui exécute un call sur mes modules, le tableau CD va se mettre à jour tout seul? A vrai dire je n'en utilise jamais car ça ne répond pas souvent à ce que je cherche comme résultat

Et comme je crée ces fichiers qui sont ensuite utilisés par des personnes qui n'ont aucune connaissance en Excell je dois parvenir à un résultat final en 1 seule opération (1 clic).

Rechercher des sujets similaires à "reorganiser tableau"