Déplacement de données ==>Aide pour analyser ce que doit faire une macro

doublenico

XLDnaute Junior
Bonjour à tous,

Je sollicite votre aide pour m'aider à comprendre comment je dois attaquer ma macro, je m'explique.

J'ai un doc Excel dans lequel on retrouve toujours un bloc de 4 cellule (ex : D10 à D13). On retrouve dans ce bloc, dans la première cellule toujours une image, les 3 autres contiennent du texte.
Il s'agit de mettre en place une gamme imagée, c'est à dire une liste d'instruction que doit executer une personne.
Dans l'exemple que je mets en pièce jointe, j'ai plusieurs bloc.
Je souhaite pouvoir de facon automatique inserer un bloc et par conséquent de décaler les blocs existant mais aussi supprimer un bloc et que tous les autres blocs remontent d'un niveau.

Je ne sais pas comment attaquer cette macro. J'ai commence à nommer mes premiers blocs (zone nomée "zone1", "Zone2...) et je me dis qu'il faudrait dans un premier temps pouvoir lister toutes les zones nommées (je ne sais pas comment faire) puis créer un userform qui permettrait d'inserer un "new block" et qui décalerait tous les autres...

Merci d'avance pour vos idées.

http://cjoint.com/?mglST8RCwB
 
Dernière édition:

Luki

XLDnaute Accro
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

bonjour niconico

Quelques remarques et questions:
  1. Je pense qu'il faut éviter les cellules fusionnées, sources de problèmes futurs!
  2. les blocs travaillent-ils toujours par groupe de 3? ( images 1, 2 et 3) par opération. (type 1A,1B,1C puis passage à la ligne suivante ou 1,2,3 et 4,5,6 à la ligne suivante?)
  3. Si on ajoute/supprime/déplace un bloc , est-ce le groupe de 3 blocs ou le bloc seul?
  4. Tes pages sont elles toujours structurées de la même manière? titres etc.. bref, est-ce que le premier bloc se trouve toujours sur la même cellule?
  5. J'éviterais tant que possible plusieurs pages par feuille, ça risque de compliquer la gestion, je ferais une page par feuille xl.
Ton approche par zone nommée me parait adaptée. Il faut lui ajouter un compteur (qui générera une clé unique par bloc) pour nommer automatiquement les zones lors d'un ajout et ainsi y accéder facilement .

A te lire
 
Dernière édition:

doublenico

XLDnaute Junior
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

Bonjour et merci pour ton aide.

2. les blocs travaillent-ils toujours par groupe de 3? ( images 1, 2 et 3) par opération. (type 1A,1B,1C puis passage à la ligne suivante ou 1,2,3 et 4,5,6 à la ligne suivante?)
Les blocs sont toujours constitués de 4 cellules (D10,D11,D12,D13), la premiere contient toujours une image et les 3 autres tjs du texte

3. Si on ajoute/supprime/déplace un bloc , est-ce le groupe de 3 blocs ou le bloc seul?
c'est le bloc contenant les 4 cellules

4. Tes pages sont elles toujours structurées de la même manière? titres etc.. bref, est-ce que le premier bloc se trouve toujours sur la même cellule?

oui, mes pages sont toujours structurés de la même facon

5. J'éviterais tant que possible plusieurs pages par feuille, ça risque de compliquer la gestion, je ferais une page par feuille xl.
je n'ai hélas pas le choix, je dois avoir une seule feuille

Ton approche par zone nommée me parait adaptée. Il faut lui ajouter un compteur (qui générera une clé unique par bloc) pour nommer automatiquement les zones lors d'un ajout et ainsi y accéder facilement .
Effectivement, pourrais tu me donner les premières pistes en vba?

Merci encore

A te lire
 

Luki

XLDnaute Accro
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

Bonjour Doublenico,

Désolé, pas eu le temps de suivre dans la foulée. Ton Pb n'est pas simple et demande un peu de disponibilité...

Alors, je précise mes question car je n'ai pas eu les réponses à certaines :

Pour simplifier et pour comprendre, considérons chaque bloc comme une seule cellule.

Je vois dans ton exemple 3 lignes de cellules par page,soit 9 cellules
Questions :
  1. Pour une opération donnée, (par ex vider la poubelle) utilise-tu toujours 3 cellules (3 étapes), donc une seule ligne, ou est-ce que tu as des cas où tu vas utiliser plusieurs lignes? ( + de 3 étapes)
  2. Faut-il considérer toutes les étapes d'une opération comme un ensemble?
  3. Comment alimentes-tu les bloc? En remplissant les cases à la main et en insérant les images? par copier/coller?
Remarque: Tes cellules sont fusionnée, quand tu parle de cellule D10, tu devrait parler de (D10 : D20) par exemple. Ce n'est pas du tout la même chose!

Voilà, essaie de préciser tout cela. Nous ne sommes pas dans ta tête et c'est parfois difficile de deviner comment tu utilise tes fichiers.

A te relire, bonne journée
 

doublenico

XLDnaute Junior
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

Bonjour à tous,

Pardon pour la réponse plus que tardive mais je ne me remets sur mon fichier que maintenant.
Un bloc est composé de plusieurs cellules, par exemple le premier bloc va de D11 à L14.
Je dispose toujours de la même structure, c'est à dire 3 blocs par ligne. Le premier bloc commence toujours à la même ligne.
En gros les positions de chaques blocs sont fixes (c'est vraiment mon fichier standard)
Les blocs s'alimentent via d autres macros présentent dans le fichier (insertion d'image, de numéro) mais il y a également du texte à ajouter manuellement.
Puisque tous mes fichiers sont basés sur le même modèle, j'ai créé une petite macro pour nommer les zones :
Code:
Sub Creation_zones()
'
' Creation automatique de zones nommées
' Macro enregistrée le 08/01/2008 par u207926
'

    Range("D11:L14").Select
    'Range("D14").Activate
    ActiveWorkbook.Names.Add Name:="zone1", RefersToR1C1:="=GTI!R11C4:R14C12"
    Range("N11:V14").Select
    'Range("N14").Activate
    ActiveWorkbook.Names.Add Name:="zone2", RefersToR1C1:="=GTI!R11C14:R14C22"
    Range("X11:AF14").Select
    'Range("X14").Activate
    ActiveWorkbook.Names.Add Name:="Zone3", RefersToR1C1:="=GTI!R11C24:R14C32"
    Range("D16:L19").Select
    'Range("D19").Activate
    ActiveWorkbook.Names.Add Name:="zone4", RefersToR1C1:="=GTI!R16C4:R19C12"
    Range("N16:V19").Select
   ' Range("N19").Activate
    ActiveWorkbook.Names.Add Name:="Zone5", RefersToR1C1:="=GTI!R16C14:R19C22"
    Range("X16:AF19").Select
    'Range("X19").Activate
    ActiveWorkbook.Names.Add Name:="Zone6", RefersToR1C1:="=GTI!R16C24:R19C32"
    Range("D21:L24").Select
   ' Range("D24").Activate
    ActiveWorkbook.Names.Add Name:="Zone7", RefersToR1C1:="=GTI!R21C4:R24C12"
    Range("N21:V24").Select
   ' Range("N24").Activate
    ActiveWorkbook.Names.Add Name:="Zone8", RefersToR1C1:="=GTI!R21C14:R24C22"
    Range("X21:AF24").Select
   ' Range("X24").Activate
    ActiveWorkbook.Names.Add Name:="Zone9", RefersToR1C1:="=GTI!R21C24:R24C32"
    Range("D29:L32").Select
   ' Range("D32").Activate
    ActiveWorkbook.Names.Add Name:="Zone10", RefersToR1C1:="=GTI!R29C4:R32C12"
    Range("N29:V32").Select
   ' Range("N32").Activate
    ActiveWorkbook.Names.Add Name:="Zone11", RefersToR1C1:="=GTI!R29C14:R32C22"
    Range("X29:AF32").Select
  '  Range("X32").Activate
    ActiveWorkbook.Names.Add Name:="Zone12", RefersToR1C1:="=GTI!R29C24:R32C32"

Voici l'url de mon fichier pour mieux comprendre.
http://cjoint.com/?bipfWFrBkB

Pour résumer, j'aimerai pouvoir
- inverser un bloc par un autre
- inserer un bloc vide et que tous les autres se décalent automatiquement
- supprimer un bloc et que tous les autres blocs remontent d'un niveau

Merci encore pour votre aide précieuse
 

Luki

XLDnaute Accro
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

Bonsoir Nico

Merci d'avoir donné suite , même tardivement. :)

Personnellement, je ne vais pas donner suite à ce fil car je n'ai vraiment pas de temps actuellement ( et ton projet en demande pas mal) et d'autre part, tu ne semble toujours pas vouloir répondre aux questions ( ne sont elles pas assez claires?) que je te pose point par point.

Le plus simple serait que tu y réponde point par point et simplement, pour que l'on puisse t'apporter de l'aide.

Tu ne réponds pas à celle -ci par exemple:
Pour une opération donnée, (par ex vider la poubelle) utilise-tu toujours 3 cellules (3 étapes), donc une seule ligne, ou est-ce que tu as des cas où tu vas utiliser plusieurs lignes? ( + de 3 étapes)
C'est important pour choisir une solution à ton problème!

Je le répète, nous ne sommes pas à ta place et toujours bénévoles.

Alors, si une âme charitable veut bien se pencher sur ton problème, bon courage à elle, et à toi aussi pour la suite. :)

Bonne soirée
 

doublenico

XLDnaute Junior
Re : Déplacement de données ==>Aide pour analyser ce que doit faire une macro

Tout d'abord merci pour ta réponse et ton temps passé sur mon sujet.
Je pensais avoir répondu à toutes tes questions je m'en excuse, je vais donc les reprendre point par point.

1. Pour une opération donnée, (par ex vider la poubelle) utilise-tu toujours 3 cellules (3 étapes), donc une seule ligne, ou est-ce que tu as des cas où tu vas utiliser plusieurs lignes? ( + de 3 étapes)
Réponse ==>En fait, je pense que j'ai du mal à comprendre cette question.
Pourrais tu la reformuler ?
Si je souhaite supprimer un bloc de 4 lignes, je ne veux pas que ceux qui se trouvent avant ou après soir supprimer.

2. Faut-il considérer toutes les étapes d'une opération comme un ensemble?
Réponse ==>Oui

3. Comment alimentes-tu les bloc? En remplissant les cases à la main et en insérant les images? par copier/coller?
Les blocs s'alimentent via d autres macros présentent dans le fichier (insertion d'image, de numéro) mais il y a également du texte à ajouter manuellement.

Je ne demande pas la solution miracle toute faite et je suis prêt à passer beaucoup de temps sur ce projet et progresser.
Je me demande donc comment attaquer le projet pour bien commencer et même savoir si out simplement c'est techniquement possible.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87