Créer une ligne en fonction d'un cellule

XciD69

XLDnaute Nouveau
Bonjour à tous

Je connais Excel depuis longtemps mais quand on ne maitrise pas le VBA, le logiciel peut parfois être limité. J'essaye de crée un outils permettant une automation dans un fichier excel.

J'ai une page avec une base de données (N° Panne,Nombre d'actions prévue les deux importantes)
Dans nombres d'actions prévue, on renseigne le nombre d'actions qui vont être mis en place à différentes semaine de l'année.
J'ai créer une autre page qui rassemble les actions prévus.

J'aimerais que cette page récupère automatiquement le nombres d'actions n et copie n fois le n° de la pannes dans le tableau, avec n lignes.
Si j'ai une actions : 1 lignes
Si j'ai deux actions : 2 lignes

Quelqu'un pourrais m'aider ?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Créer une ligne en fonction d'un cellule

Bonjour,

sans doute qu'un modèle des données à traiter avec résultat attendu serait plus facile pour t'aider.... Sinon fais une petite recherche sur le forum, sans doute y trouveras-tu des pistes...

bon après midi
@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Créer une ligne en fonction d'un cellule

Bonjour XciD, bonjuor le forum,

C'est pas très clair (en tous cas pour moi !)... Un fichier exemple avec une poignée de données serait le bienvenu. Tu montres ce qu'il y a au départ et ce que tu souhaiterais obtenir.

[Édition]

Bonjour Pierrot on s'est croisé
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Créer une ligne en fonction d'un cellule

Bonjour XciD, bonjour le forum,

Ok merci pour le fichier c'est plus clair mais ça encore de lumière...
On pourrait faire :
• Un bouton. Tu cliques et il récupères toutes les données de l'onglet Sheets2... ? Faut-il effacer les ancienne données déjà récupérées avant dasns ce cas (dans Sheet1) ?
• une macro événementielle Change qui s'éxécuterait à chaque nouvelle édition dans la colonne U et qui ne copierait que la ligne ?

À quoi sert le tableau calendrier dans l'onglet Sheet1 ?
 

XciD69

XLDnaute Nouveau
Re : Créer une ligne en fonction d'un cellule

Re,

Pour les questions : Un bouton pourrait être bien dans la sheet 1, non il ne faut pas effacer les données deja récupérer, écrire les nouvelles données à la suite.
La deuxieme solutions et aussi bien (macro événementielle), et je veux quelle copie seulement la ref Colonne A et la semaine Colonne D, le reste de la sheet 2 n'est pas important

En gros, Il y a une panne, suite à cet panne deux solutions : pas d'actions , actions préventive
Quand il y a pas d'actions, rien a faire
Quand il y a une ou des actions, on copie les ref et la date dans la sheet 1 puis on donne un délai pour l'action et on peut voir visuellement ou en est l'action.
 

XciD69

XLDnaute Nouveau
Re : Créer une ligne en fonction d'un cellule

Wow, c'est exactement ça, par contre le seul soucis c'est à chaque fois qu'on appuis sur le bouton il recopie même si c'est déjà présent, or il faudrait qu'il ajoute simplement les nouvelle données.(une sorte de MàJ)

Et j'ai pas trop compris comment tu as récupérer la semaine.

y a-t-il une possibilité de couplé la colonne M (sheet2) avec la colonne F(sheet1)
Je m'explique : Si nombre d'actions = 0 collone M(sheet2) = soldé
mais si nombre d'actions >0 la colonne M(sheet2) est soldé quand la colonne F(sheet1) pour toutes les EWO est soldé

En tout cas merci pour la réactivité
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Créer une ligne en fonction d'un cellule

Bonjour XciD, bonjour le forum,

Wow, c'est exactement ça, par contre le seul soucis c'est à chaque fois qu'on appuis sur le bouton il recopie même si c'est déjà présent, or il faudrait qu'il ajoute simplement les nouvelle données.(une sorte de MàJ)
Oui c'est pour cela que je te demandais dans un post précédent si il fallait effacer les anciennes données. Pour éviter d'avoir tout en double quand tu cliques à nouveau sur le bouton. tu m'avais répondu : "non", alors...
Et j'ai pas trop compris comment tu as récupérer la semaine.
En utilisant le décalage Offset :
Code:
dest.Value = cel.Offset(0, -20) 'numéro EWO décalé de 20 colonnes à gauche par rapport au nombre d'action
dest.Offset(0, 1).Value = cel.Offset(0, -17).Value 'semaine décalé de 17...

Mais avant d'aller de l'avant il faudrait que tu m'expliques ce que je ne comprends pas :
• on récupère uniquement deux données de l'onglet sheet2 pour les placer dans l'onglet sheet1. Pourquoi alors 6 colonnes dans l'onglets sheet1 ?
• Si tu vas éditer des renseignements dans ces colonnes vides, comment savoir ensuite quelles données de sheet2 n'ont pas été mise à jours (puisques même les anciennes données récupérées par macro dans sheet1 seront différentes de l'original dans sheet2) ?

Je te propose éventuellement la chose suivante : sur toutes les lignes de sheets2 déjà copiées dans sheet1 on ajoute en colonne V (par exemple) un X (ou autre tag). Par la suite quand on cliquera sur le bouton la macro ne fera la récup que sur les lignes non tagées.
Pas très bien compris ton histoire de couplage des cellules. Mais je pense que c'est faisable. J'attends que tu répondes à mes deux questions pour t'en dire plus...
 

XciD69

XLDnaute Nouveau
Re : Créer une ligne en fonction d'un cellule

Bonjour XciD, bonjour le forum,


Oui c'est pour cela que je te demandais dans un post précédent si il fallait effacer les anciennes données. Pour éviter d'avoir tout en double quand tu cliques à nouveau sur le bouton. tu m'avais répondu : "non", alors...

J'ai pas compris la question comme cela, effectiviment en relisant c'est ce que j'ai confirmé.

Mais avant d'aller de l'avant il faudrait que tu m'expliques ce que je ne comprends pas :
• on récupère uniquement deux données de l'onglet sheet2 pour les placer dans l'onglet sheet1. Pourquoi alors 6 colonnes dans l'onglets sheet1 ?
• Si tu vas éditer des renseignements dans ces colonnes vides, comment savoir ensuite quelles données de sheet2 n'ont pas été mise à jours (puisques même les anciennes données récupérées par macro dans sheet1 seront différentes de l'original dans sheet2) ?

Je te propose éventuellement la chose suivante : sur toutes les lignes de sheets2 déjà copiées dans sheet1 on ajoute en colonne V (par exemple) un X (ou autre tag). Par la suite quand on cliquera sur le bouton la macro ne fera la récup que sur les lignes non tagées.
Pas très bien compris ton histoire de couplage des cellules. Mais je pense que c'est faisable. J'attends que tu répondes à mes deux questions pour t'en dire plus...

Bon reprenons, on va appeler sheet 1 : Macro Planning et sheet 2 : Base de donnée EWO.
Le principe est simple, la base de donnée s'incremente automatiquement chaque jour avec une base de donnée SQL, on remplit quelque colonne vide comme 'nombre d'actions prévus"
Jusque la, c'est simple, une fois les n actions copiés dans la Macro Planning, on remplit les actions, le Pilote de l'actions et on lui donne un délai pour ainsi nous permettre de voir ou nous en sommes dans les actions prévus.

Donc logiquement les données qui non pas été mis à jour sont celles qui non pas été remplit, l'idée du TAG n'est pas du tout gênante au contraire je vois très bien son utilité.

J'ai aussi pensé, je sais pas si c'est faisable :
Si on peut grouper les actions du même EWO, voir fichier joint ou je l'ai fais manuellement après ce n'est que du visuel, si ça devient trop compliqué on oublie.

L'histoire du couplage n'est plus a faire, je viens de me rendre compte que cela ne sert à rien.

En tout cas merci
 

Pièces jointes

  • Xcid_V2.xls
    40 KB · Affichages: 76

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 486
Membres
103 557
dernier inscrit
gerard.messerlin68@orange