Tableau a remplir automatiquement

Bonjour à tous ,
un autre tableau me pose problème ,j’ai besoin de pouvoir automatiquement remplir une feuille avec les données d’une autre .
J’ai une feuille "planning "sur laquelle j’ai besoin de remplir jour par jour des données à partir de l’onglet « ordo » .
Je souhaite pouvoir pour chaque jours transférer 1)l’article (article colonne C a transférer dans l’onglet planning vierge en colonne A) et en 2)les btc (quantité théoriques dans l’onglet ordo ,colonne E a transférer en colonne C de l’onglet planning vierge )
Enfin ,si possible ,pouvoir masquer en auto les lignes qui restent vides après transfert des données ainsi que les colonnes qui ne porte pas de nom après affectation des heures et taches .
J’espère avoir été assez clair et compte sur votre maitrise du sujet !!
J’ai bien tenté de reprendre une macro utilisée sur un autre tableau mais ça coince .
Merci pour votre aide .
Franck .
Copie de new deb 2021.xlsm (71,4 Ko)

Bonjour ,
j’ai revue ma copie et tenté une autre approche mais je n’ai toujours pas réussi …Copie de new deb 2021(1).xlsm (72,3 Ko)
Si quelqun peut m’aider ,merci d’avance ,
Soyez prudents !!
Franck.

Bonjour

Ci-joint ma proposition

Onglet "ORDO " cliques sur la loupe

Attention le traitement rempli l’onglet « PLANNING VIERGE » dans les parties correspondant au jour de la semaine du lundi au vendredi dans la limite des disponibilités en nombre de lignes (dans ton fichier 10 possibilités par jour)
Ainsi le vendredi seul 10 enregistrements sur 12 sont intégrées par manque de place onglet de destination

A ce sujet donc le traitement ne considère que 10 lignes maximum
En début ces lignes de code cible les jours les début et fin de chacun d’eux :

listejour = « /lundi/mardi/mercredi/jeudi/vendredi/ »
lignedeb = « /5/21/37/53/69/ »
lignefin = « /14/30/46/62/78/ »

Si onglet « PLANNING VIERGE » ces paramètres devaient évoluer ces lignes de code devront être adaptées

Testes et dis moi

Copie de new deb 2021(1).xlsm (78,3 Ko)

Bonjour FFO ,
merci pour ta réponse et ton code qui fonctionne comme je l’esperais .
Effectivement ,j’ai limité les nombre de ligne à dix dans ce tableau mais je pense augmenter et par la suite masquer les lignes vides et faire de même avec les colonnes pour améliorer la lisibilité du tableau au final .
Je pensais rentrer le code suivant :
Sub masquer_les_lignes_inutiles()

'masquer_les_lignes_inutiles macro

Dim i as long
apllication.screenupdating=false
'masque les lignes du lundi
selection.entirerow.hidden=true
for i=5 to 14 if cells(i,1)="" then
rows(i).select
selection.entirerow.hidden=true
end if
next
etc… jusqu’au vendredi
mais je souhaiterais pouvoir remettre mon tableau vierge et avec toute les lignes,colonnes affichées .
Merci de ton aide ,
c’est vraiment génial de voir grâce a vous les projet excel prendre forme .
Franck .

Merci du retour

Ce que je te propose c’est d’inclure ce masquage dans mon traitement
Combiens penses tu mettre de lignes par mois ?
Autant en prévoir avec de la marge dans cet esprit car cela conditionne mes paramètres de début de code
Qu’en dis tu ?
Merci de me dire

Bonsoir ,
par expérience il est rare que nous ayons plus de 15 lignes par jour a traiter .
On peut idéalement se baser là dessus et pour les colonnes j’ai le maximum donc si on peut également les prendre en compte.
Merci ,
Franck .

Peux tu me fournir un fichier dans cet esprit afin que je l’adapte

Merci

Bonjour ,
voila un fichier « type » avec 15 lignes par jour.
Mon souhait :1)pouvoir masquer les lignes/colonnesCopie de Copie de new deb 2021(1).xlsm (88,8 Ko) vides et 2) masquer les lignesou pour une reference j’ai 0.00 dans la case temps (si 0 je n’ai pas d’action donc ligne inutile egalement )
Merci
Franck

Bonjour

Ci-joint ton fichier adapté
J’ai inclus dans le traitement le masquage des lignes qui n’ont pas de valeur en colonne A onglet « PLANNING VIERGE » pour tous les mois
J’ai supprimé tous les traitements que tu as réalisé pour obtenir ce résultat car il était impossible avec leur présence de faire fonctionner normalement le fichier
Désolé

Testes et dis moi

Copie de Copie de new deb 2021(1).xlsm (88,5 Ko)

Bonjour FFO,
c’est formidable ,mais je vais encore t’embêter un petit peu !!
Est -il possible que dans le traitement l(on puisse masquer ,au meme titre que les lignes vides ,les lignes ou il y a 00,00 dans la colonne TPS ?
Autre petit problème que je rencontre :
J’ai dans mon onglet « planning vierge » repris le numero de semaine correspondant au premier jour de mon « ordo »:
image
mais lorsque je reprend une nouvelle semaine (celle qui est dans « ORDO VIERGE ») et que je la colle dans « ordo » et je fait un tri (bouton :mise en forme deballage )


Le tri se fait mais en chargeant ce nouveau planning :

La formule ne fonctionne plus ,j’ai pourtant mis des $.
J’ai du louper quelque chose .
Merci encore ,c’est vraiment super de voir l’avancement de ce bel outil .
Franck .

Bonjour

Merci pour ce premier retour

Je t’avais transmis un premier fichier avec effectivement le masquage uniquement des lignes dont la colonne A étaient sans données
En relisant ta demande je me suis aperçu qu’il manquait à masquer celle dont la colonne D TPS était à 0 je t’ai donc retransmis le fichier avec cet ajout
Je pense que tu as récupéré mon premier exemplaire et non le second de ma première réponse
Je te joins ce 2° fichier avec dans le traitement l’ensemble des masquages souhaité et une adaptation de ton traitement tri « PlanningDeballage » afin de résoudre ta problématique concernant tes formules onglet « planning vierge »
Cette correction t’affranchit du Copier/Coller de l’onglet « ORDO VIERGE » vers « ORDO »
Tout s’effectue dans cette procédure
Tu cliques sur le bouton (icone disquette) le tri et la recopie s’effectue automatiquement
Pour info tes onglets « ORDO VIERGE » et « ORDO » avait un blanc dans leur nom en bout je les ai supprimés
L’onglet « SEM 46 » a le même défaut à voir pour supprimer ce blanc intempestif

Ci-joint ton fichier

Testes et dis moi

Copie de Copie de new deb 2021(1).xlsm (89,8 Ko)

Bonjour ,
merci à toi pour cette nouvelle proposition qui fonctionne a merveille ,mais du coup je me rend compte que l’etape de transfert de « ordo vierge » à « ordo » est en fait inutile .
Peut-on faire le tri et le trensfert dans le planning a partir du premier onglet ?
en résumé fusionner le tri et le transfert a partir d’un seul onglet ,transferer a partir d’ordo vierge directement dans le planning ?
je te transmet le tableau tel que je la fais evoluer .
encore merci .debv3 2021(1)-1.xlsm (63,3 Ko)
Franck .
J’ai rectifié le blanc dans l’onglet S46.

Ci-joint ton fichier avec les 2 traitements (« PlanningDeballage » et « Traitement ») regroupé dans la procédure « Traitement »
Mets dans l’onglet « ORDO » toutes les données de l’onglet « ORDO VIERGE » et utilise le seul bouton « CHARGEMENT PLANNING »
Résultat onglet « PLANNING VIERGE »

Plus besoin de l’onglet « ORDO VIERGE » et de sa procédure « PlanningDeballage » ni du bouton « MISE EN FORME DEBALLAGE »

Tout est traité à partir de l’onglet « ORDO » avec un seul bouton « CHARGEMENT PLANNING »

Testes et dis moi

debv3 2021(1)-2.xlsm (68,6 Ko)

Bravo et merci ,
cela me permet un travail propre et synthetique .
J’ai voulu rajouter une consigne dans le tri initial ,je souhaite enlever les « z600 » lorsque j’ai trié sur « emballage » j’ai rajouté a ton code :
Sub PlanningDeballage()

’ PlanningDeballage Macro

Dim i As Long
Dim j As Long
If Range(« A » & Rows.Count).End(xlUp).Row > 1 Then
Range(« A2 », « E » & Range(« A » & Rows.Count).End(xlUp).Row).Clear
End If
i = 2
j = 2
’ récupération des lignes onglet ORDO VIERGE selon critères
While Sheets(« ORDO VIERGE »).Cells(i, 1) <> «  »
'ligne colonne A = dosage et colonne d = Z400
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « DOSAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z400 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End If
'ligne colonne A différent de CUISINE et DOSAGE
If Sheets(« ORDO VIERGE »).Cells(i, 2) <> « CUISINE » And Sheets(« ORDO VIERGE »).Cells(i, 2) <> « DOSAGE » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
i = i + 1
Wend

End Sub

La ligne :'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If

ce qui donne :
Sub PlanningDeballage()

’ PlanningDeballage Macro

Dim i As Long
Dim j As Long
If Range(« A » & Rows.Count).End(xlUp).Row > 1 Then
Range(« A2 », « E » & Range(« A » & Rows.Count).End(xlUp).Row).Clear
End If
i = 2
j = 2
’ récupération des lignes onglet ORDO VIERGE selon critères
While Sheets(« ORDO VIERGE »).Cells(i, 1) <> «  »
'ligne colonne A = dosage et colonne d = Z400
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « DOSAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z400 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End If
'ligne colonne A différent de CUISINE et DOSAGE
If Sheets(« ORDO VIERGE »).Cells(i, 2) <> « CUISINE » And Sheets(« ORDO VIERGE »).Cells(i, 2) <> « DOSAGE » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
i = i + 1
Wend

End Sub
mais je dois avoir un erreur …
Franck .

Ici :

If Sheets(« ORDO VIERGE »).Cells(i, 2) = « DOSAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z400 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If

Tes restrictions sont d’abord « DOSAGE » puis dans « DOSAGE » « Z400 » jusqu’au End If qui suit qui te remet que dans la restriction « DOSAGE » mais plus dans « Z400 »

la suite est donc déjà sur la restriction « DOSAGE » car non clôturée :

'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End If

Ce n’est pas ce que tu souhaites je suppose donc il faut clôturer la restriction « DOSAGE » avec un autre End If comme ceci :

If Sheets(« ORDO VIERGE »).Cells(i, 2) = « DOSAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z400 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End if

Ainsi tu clôture les 2 restrictions avant d’entamer les 2 suivantes avec la même logique

Essaies et dis moi

J’étais sur la bonne voie a un « END IF » près !!!
Cela fonctionne a merveille.
Merci FFO pour tout le travail sur mon tableau et les conseils avisés .
A bientôt pour de nouvelles aventures !!
Merci ,
Franck

Merci du retour
À la prochaine avec plaisir

Euh j’ai été un peu vite …
je n’ai plaus d’erreur lorsque je traite mais j’ai toujours mes « z600 » qui se chargent ,alors que je ne souhaite pas les avoir dans mon planning ,j’ai modifié ainsi :
Sub PlanningDeballage()

’ PlanningDeballage Macro

Dim i As Long
Dim j As Long
If Range(« A » & Rows.Count).End(xlUp).Row > 1 Then
Range(« A2 », « E » & Range(« A » & Rows.Count).End(xlUp).Row).Clear
End If
i = 2
j = 2
’ récupération des lignes onglet ORDO VIERGE selon critères
While Sheets(« ORDO VIERGE »).Cells(i, 1) <> «  »
'ligne colonne A = dosage et colonne d = Z400
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « DOSAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z400 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End If

'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If

j = j + 1 'ligne colonne A différent de CUISINE et DOSAGE

If Sheets(« ORDO VIERGE »).Cells(i, 2) <> « CUISINE » And Sheets(« ORDO VIERGE »).Cells(i, 2) <> « DOSAGE » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
i = i + 1
Wend

End Sub

Franck .

Toujours fâché avec les End if à moins que ta souris rechigne à les sortir :

'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If

2 conditions une seule clôturée

moi je mettrais ainsi :

'ligne colonne A = emballage et colonne d = Z600
If Sheets(« ORDO VIERGE »).Cells(i, 2) = « EMBALLAGE » Then
If Sheets(« ORDO VIERGE »).Cells(i, 4) = « Z600 » Then
Range(« A » & j, « E » & j).Value = Sheets(« ORDO VIERGE »).Range(« A » & i, « E » & i).Value
j = j + 1
End If
End if

Corriges testes et dis moi

J’ai corrigé mais en lancant le traitement ,voila ce que j’ai en ORDO (que je ne souhaite justement pas retrouver en planning (z600) :
image
et que je retrouve tout de meme apres correction du code :

corrections apportées: