Copie de donnée et collage sélectif

alex0603

XLDnaute Nouveau
Bonjour,

Tout d'abord, un grand merci et bravo pour votre site. Les tutos, fonctions… sont vraiment étonnants !

Je suis en train de plancher les fonction / macro xls, mais novice dans le domaine, je me permet de faire appel à votre aide !
Le but du jeu est de jongler et compléter des nomenclatures de façon automatique.

Explications : (prendre le classeur joint)

Ce classeur se divise en trois feuilles :

- la première, nommée nomenclature, regroupe tous les repères topologiques correspondants à un code
- la seconde, nommée XY correspond au fichier de coordonnées dans lequel doivent apparaître ces codes?
- la troisième est le résultat final souhaité (toutes les cases ne sont pas remplies)

Ce que j'aimerais faire au travers d'une macro ou fonction Excel, c'est recopier les codes de la nomenclature dans la feuille XY pour tous les repères correspondant.

Par exemple dans la 19eme ligne du fichier nomenclature, le code AC41/0125 doit être copié dans la colonne B de la feuille XY face au repères C1, C2, C3, C4, C10, C11, C13, C15, C20.

Pouvoir faire en sorte que la macro comprenne que C1-C4 veut dire de C1 à C4 donc C1, C2, C3, C4, je n'ai pas encore compris comment le faire.

J'essaye en vain depuis des heures sans résultats.

Je répondrais à toutes les questions sur ce qui reste flou, merci d'avance pour votre aide.
 

Pièces jointes

  • Nomenclatures à traiter.xls
    39 KB · Affichages: 151
  • Nomenclatures à traiter.xls
    39 KB · Affichages: 128
  • Nomenclatures à traiter.xls
    39 KB · Affichages: 127
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Bonjour,

comme tu es "novice dans le domaine", la façon dont tu présentes la colonne "reperes_topo" dans la feuille "Nomenclature" ne va pas simplifier les choses.
Si tu peux séparer les adresses dans des colonnes différentes plutôt que d'avoir tout dans une seul cellule, se sera plus facile à faire.
Par exemple:
C1-C4,C10,C11,C13,C15,C20 en D9 devient:
C1-C4 en D9
C10 en E9
C11 en F9
C13 en G9
etc...

A te relire.
A oui, se serait bien de donner un exemple (colorié par exemple) du résultat attendu pour être sûr de ce qu'il faut faire.
 

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Non, justement la nomenclature sort de cette manière d'une gpao.

Oui j'avais pensé à transposé les repère comme vous dîtes en faisant
=>Données
=>convertir
pour enlever les virgules et espaces mais le problème c'est qu'après il reste toujours le fameux C1-C4 dans une cellule et je ne sais pas quoi en faire.

J'ai édité le classeur du premier post pour faire apparaitre l'exemple plus clairement.

Merci de votre réponse.
 

skoobi

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Re,

dans ce cas je te suggère de faire
=>Données
=>convertir

Puis tu utilises la fonction Split (regarde l'aide pour plus d'explication) pour détecter les cellules ayant "-".
Voici un exemple d'utilisation pour la cellule D19 contenant "C1-C4":

Code:
adresse=split([D19].value,"-")
range(adresse(0) & ":" & adresse(1)).Select
Cela va sélectionner la plage C1:C4.
Ca devrait t'aider.
Sinon revient nous voir mais avec le code cette fois.;)
 

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Bonjour et merci de ton aide. :)
Il est en effet facile de convertir (même si le pb de C1-C4 à remplacer par C1, C2, C3, C4 n'est pas résolu !). Ça m'a permit d'aboutir à un 1er "résultat", mais je ne parvient pas à faire une recherche INDEX EQUIV qui me renvoie la cellule voulue quand il y a plusieurs colonnes ! Cf feuille de calcul XY traité.
Je ne parvient pas à comprendre si il faut imbriquer une fonction dans EQUIV pour aller chercher dans les cellules de droite (sur la même ligne) ou si c'est en utilisant les fonctions matricielles que j'y parviendrais ?...
La fonction EQUIV travaille dans une matrice, alors pourquoi ne marche-elle que sur une ligne ou une colonne? :confused:

Pour se qui est de la fonction Split, je ne maîtrise pas le VBA (Ho le boulet !!! :eek:) alors je ne sais pas trop comment exploiter le code !...

A+mitiés

Pierro (le pote d'Alex qui planche sur le même sujet!)
 

Pièces jointes

  • Nomenclatures à traiter.xls
    47 KB · Affichages: 101
  • Nomenclatures à traiter.xls
    47 KB · Affichages: 94
  • Nomenclatures à traiter.xls
    47 KB · Affichages: 89
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Re,
je ne maîtrise pas le VBA (Ho le boulet !!! :eek:)
Bin non pourquoi:(, il n'y a pas de raison! On est tous passé par là (quoi que pour certains contributeurs, je me demande s'ils ne sont pas "tombés dedans étant petit" :p :Dhihi)
En attendant qu'un formuliste te trouve une solution par fonction, je te propose la macro du fichier joint qui traite ces fameuses plage "C1-C4" (bouton traiter plage).
Si tu veux essayer de comprendre le code, refais signe, je le commenterais.
 

Pièces jointes

  • Copie de Nomenclatures à traiter.zip
    15.6 KB · Affichages: 52

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Bonjour Skoobi,

Mais c'est MAGNIFIQUE !!! :p Le tout en 20 lignes de code, bravo...
Bien sûr que j'essaie de comprendre ! Mais c'est pas simple quand on a fait qu'un peu d'assembleur et de C (et que depuis 10 ans, je ne fais que du hard!). Alex est meilleur que moi en C, il était à l'IUT il y a - longtemps ! Il faut donc que je bosse. J'ai trouvé des cours de VBA sur développez.com mais il sont longs et pas évidents (il faut que je m'accroche) :eek:. Comme tu le signe : "On en apprend tous les jours !"
Si je parvient à comprendre qq chose, ta macro recherche en colonne E les cellules comprenant *-* le "décompose" en autant de "repere topo" et renvoie le contenu sur cette ligne de la colonne C ("code"). Il nous reste à faire ce boulot dans toutes les cellules qui comportent un repère (= E2 à L25 dans notre exemple, mais qui peut contenir qq 100 lignes et qq 100 collonnes!)... :confused:

Petite info au passage : la fonction que nous essayons de mettre au point ici n'est qu'un partie de l'iceberg que je souhaiterais traité in-finé. En effet, j'aimerais pouvoir après la conversion des codes, pouvoir comparer les colonnes des différentes feuilles et ne plus avoir à TOUT contrôler à la main (ou à l'oeuil), mais une chose à la fois ! :rolleyes:

A+
Pierro
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Re bonjour,

Si je parvient à comprendre qq chose, ta macro recherche en colonne E les cellules comprenant *-* le "décompose" en autant de "repere topo" et renvoie le contenu sur cette ligne de la colonne C ("code"). Il nous reste à faire ce boulot dans toutes les cellules qui comportent un repère (= E2 à L25 dans notre exemple, mais qui peut contenir qq 100 lignes et qq 100 collonnes!)... :confused:

Et bien pour un "boulet" :D je trouve que tu comprends vite ;).
En fait la recherche ne se fait pas uniquement su la colonne E car la dernière cellule de la feuille est cherchée:
Code:
Set DerCell = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Cells.Count)
Donc toutes les colonnes E et suivantes sont traités ;).
Si tu as besoin d'un autre coup de main, n'hésite pas.

PS: pour ma part, je ne connais que VBA, rien d'autre.
 

ChTi160

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Salut alex0603
Bonsoir le fil
Bonsoir le Forum

En pièce jointe une réponse VBA ,Arfff moi les formules ????????
je passe directement de la feuille "Nomenclature" à la feuille "XY Traité"

j'ai cru comprendre que cela n'est qu'un début ,je n'ai pas compris ce qui n'a pas été dit lol ,à quoi sert la feuille "XY" par exemple ????
il faudrait savoir , ce qui est à tranférer (de où à où lol ),mais ne brulons pas les étapes

Le Fichier : http://cjoint.com/?cjrKIXafVc

en espérant avoir fait avancer le chimilimBlick lol

Bonne fin de Journée
 

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Bonsoir lézamis !

Hé bien, chapeau bas ! Je comprend pourquoi vous êtes des aficionados du VBA, quelle puissance... Moi qui ai passé 2 jours à galérer avec mes formules ! c'est décidé, je m'y met ! Je suis donc preneur de tout bons conseils et d'adresses de cours et tutos pour débuter en VBA (Excel downloads propose des feuilles de cours superbes mais quand j'ouvre la macro, j'ai l'impression d'être une poule qui a trouvé un couteau !! :D)

Skoobi, si tu le peux (et le veux), je suis intéressé par des commentaires sur ta macro. Effectivement je n'avais pas compris que tu "scannais" toute les colonnes après E.

Un immense MERCI Jean Marie ! Tu as fais ce dont je rêve depuis des années !!! :p (sans blague!) et commenté en +, je sais quoi faire cette semaine...

Pour en expliquer un peu + : dans l'état des choses la feuille XY ne sert pas à grand chose, en effet. Je souhaite coller dans un classeur une nomenclature "interne" des composants (contenant les codes), le fichier XY (de placement des dits composants) et la nomenclature "client" (pas encore présente dans le classeur xls). Les buts finaux (et finaud!) étant de pouvoir générer automatiquement une feuille "XY traité" comme tu l'as fait (en ajoutant une fonction pour identifier les repères qui ne sont pas présents dans la nomenclature de départ -> "cmp absent", une mise en forme avec entête pour que le logiciel qui vient derrière puisse directement faire son boulot, un changement d'unité automatique mm/inch...) et une feuille de "contrôle" qui soit capable de comparer et identifier : une erreur de quantité entre nomenclature interne et client, les différences de désignation des cmps, les repères qui n'apparaissent pas (ou apparaissent 2X) dans une nom. ou le XY... Enfin bref un contrôle complet de cohérence entre les 3 feuilles ! Il y a encore du pain sur la planche et j'espère surtout qu'un de mes clients ne va pas venir trainer sur le forum, sinon je peux pointer à l'anpe !!! :D

Bonsoir à tous !

Pierro
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Re Pierre Lol
bonsoir le Fil
Bonsoir le Forum

Pour ce qui est de la puissance d'excel et de Vba en particulier , Eh ben effectivement , c'est fou !!! Lol

pour ce qui est de l'aide n'hésite pas à nous solliciter ..

Pour ce qui est de l'évolution de ton projet Idem , tu vas t'apercevoir que nous , on n'a pas forcément besoin de savoir le pourquoi du Comment , juste ce que tu veux arriver à faire , donc soit toujours précis dans tes explications , et n'hésite pas à mettre des exemples et tu verras qu'on y arrivera Lol

Bonne fin de Soirée ;)
 

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Hé bien merci pour votre aide et votre esprit d'entraide ! :p Ça fait plaisir a voir...
Je vous prépare un truc précis demain dés 5h à l'heure ou blanchie la campagne (quoique par chez nous elle soit tout à fait blanche, nous sommes dans la tourmente de neige !).

Bon dimanche,

A+mitiés

Pierro
 
Dernière édition:

alex0603

XLDnaute Nouveau
Re : Copie de donnée et collage sélectif

Bonjour,
Me voilà embarrassé ! :eek: Ce we j'avais fait un petit contrôle rapide des résultats de ta macro Jean Marie, mais enthousiasmé par la rapidité d'exécution d'une tâche que je faisais "à la main", je n'avais pas vu qu'il a pb ! En effet quand je fais "lancer", je ne récupère aucun code sur C1, C2, C3, C4 (qui devraient avoir AC41/0125 en colonne B), R23, R24, R25, R26 se retrouvent avec AC41/0201 au lieu de AC10/0266, ect... il y a visiblement pb sur le traitement de "-" ! Quand j'ai appliqué la macro au fichier complet, j'ai même trouvé des bugs sur des codes avec 1 repère topo... Bref je m'interroge :confused::confused::confused:
Pb de mise en oeuvre, config... ou vrai bug ? Jean Marie peux tu m'éclairer ?

A+mitiés

Pierro
 

ChTi160

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Salut pierre
Bonjour le fil
Bonjour le Forum
arfff pas évident comme cela, peux tu mettres un extrait de ton fichier , avec la macro qui s'y trouve ,quelques lignes suffisent
dans l'attente

Bonne journée
 

ChTi160

XLDnaute Barbatruc
Re : Copie de donnée et collage sélectif

Re

j'ai modifié la macro pour que cela ne se reproduise plus Lol

explications :
la methode Find (que je n'ai pas renseigné correctement voir aide)

j'ai donc fait en sorte que (la case , Mot exact soit cherché) si la recherche se fait Sur C1 si C12 (C1 et 2) est placé avant dans la liste , il ne soit pas retourné .

Le Fichier modifié : Regarde la pièce jointe Nomenclatures_2_.zip

n'hésite pas si autres problèmes lol

Excuses!!!!

Bonne Journée
 

Discussions similaires

Statistiques des forums

Discussions
312 673
Messages
2 090 778
Membres
104 664
dernier inscrit
jth