Transfert outils

Bonjour le Forum, Dans mon fichier je peux faire des transferts d'outils dans divers régions. L'exportation fonctionne très bien, mais bien sur j'ai un problème. J'ai rajouté à chaque outil un code (colonne en jaune) qui est masqué et que personne ne peut modifier. Chaque outil à son propre code qu'il doit toujours garder. Les données des outils sont inscrites par plusieurs personnes. Et il ne doit y avoir aucun double en code. Un tri est effectué à chaque fois que l'on ajoute un outil. Exemple Si vous exporter Interrupteur qui se trouve dans PARIS ZONE SUD et que vous le transférer dans PARIS ZONE NORD Le transfert ce fait correctement car Interrupteur garde bien son code. Mais si vous retourner dans PARIS ZONE NORD vous verrez qu'il y à 2 fois 58 afficher hors il ne doit en avoir qu'un. J'ai beau chercher mais je n'arrive pas à trouver le bon code qui empêche de recopier le chiffre + bas. Si vous avez une idée Merci

Bonjour,

Feuille protégée et colonnes masquées > je n'ai pas ce souci.

ric

Bonjour ric,

Je viens de testé de nouveau, et après avoir transférer Interrupteur dans PARIS ZONE SUD il y à 2 fois 58.

Mais je viens de m'apercevoir que je me suis tromper dans l'exemple

Mais si vous retourner dans PARIS ZONE NORD vous verrez qu'il y à 2 fois 58 afficher hors il ne doit en avoir qu'un

C'est PARIS ZONE SUD et non PARIS ZONE NORD

Désolé

Merci de ton aide

Bonjour,

Désolé, je n'ai pas d'erreur.

J'ai beau faire, rien n'y fait. > du vrai Raymond Devos

Y a-t-il une raison particulière pour le fichier soit une version 2003 et ton profil indique 2019 ?

Interrupteur n'est-il pas le numéro 57 ? Ou je n'ai pas la même version du fichier ?

ric

Re,

Version Excel 2003 car je suis l'ancien portable.

Photo avec les 2 codes 58.

capture 1

Bonjour,

J'ai testé sur Excel 365 et Excel 2007 sans erreur.

Je n'ai malheureusement plus le Excel 2003; le disque est défectueux ... je ne peux plus le démarrer.

Désolé de ne pouvoir mieux t'aider.

Il est possible que l'erreur proviennent du vieux Excel 2003. Il faudrait que tu puisses tester le fichier sur une autre machine.

ric

Re,

Mon portable avec Excel 2019 vient de démarrer et c'est le même résultats que Excel 2003: 2 codes à 58

Bonjour,

Mon avocat vient d'arriver ... je peux donc te présenter mes excuses.

La problématique est que : après avoir copié la ligne d'une zone à l'autre ... le code copie la première ligne vide de la zone de départ et la colle pour effacer le produit.

Cela donne le résultat que les numéros de CODE se doublonnent (hum, est-ce un nouveau verbe ?).

Il faudra donc modifier le code pour que la ligne de départ soit "COPIER"et "INSÉRER LES CELLULES COPIÉES..." dans la zone de destination ... puis, supprimer la ligne de départ en décalant vers le haut.

L'équivalent dynamique de ceci ...

Sub Macro1()
    Range("B12:N12").Copy
    Range("O12:AA12").Insert Shift:=xlDown
    Range("B12:N12").Delete Shift:=xlUp
End Sub

ric

Re,

Merci pour ton code, mais je vais beaucoup de transfert et je pense que cela verras beaucoup de code à inscrire.

Est il possible de faire :

copié la ligne d'une zone à une autre. ça c'est ok

et ne pas copier le code de la première ligne vide de la zone de départ.

Ce qui nous laisse un trou et ensuite il me reste + cas faire un tri.

Par contre pour le code si tu pourrais m'aider encore

Merci

Bonjour,

Je vais regarder cela afin de tenter trouver la meilleure façon de faire.

ric

Bonjour,

Un essai ...

Ton code ayant été bien composé, ce fut un pet de le modifier.

Après le End If > j'ai enlevé 3 lignes :

  ws.Cells(LgSource, ColSource).Resize(1, 13).Copy Destination:=ws.Cells(LgDestin, ColDestin)
  LgDestin = ws.Cells(Rows.Count, ColSource + 1).End(xlUp).Row + 1
  ws.Cells(LgSource + 1, ColSource).Resize(LgDestin - LgSource, 13).Copy Destination:=ws.Cells(LgSource, ColSource)

que j'ai remplacés par :

  ws.Cells(LgSource, ColSource).Resize(1, 13).Copy
  ws.Cells(LgDestin, ColDestin).Resize(1, 13).Insert shift:=xlDown
  ws.Cells(LgSource, ColSource).Resize(1, 13).Delete shift:=xlUp

En espérant que cela fonctionne bien sous Excel 2003.

ric

Bonjour le Forum,

Bonjour ric,

J'ai pu revenir en Excel 2019.

Tes codes sont parfait. Super

Mais il y à un décalage de ligne à chaque fois que l'on fait un transfert, car plus bas j'ai d'autres données

Est il possible de remédier à ce problème.

Je te joint le fichier avec couleur pour voir le décalage à partir de la ligne 54

Bonne journée à vous tous

Bonjour,

Pour pouvoir déplacer des données, il est difficile à première vu qu'il n'y ait pas de décalage.

Si tu as des données sous ce tableau > cela pose problème en effet.

La première idée qui me vient, serait de déplacer les données soient à droite ou sur une autre feuille.

Il y aussi l'éventualité de supprimer une ligne sur les colonnes où il y a insertion et d'ajouter une ligne sur les colonnes où il a suppression.

Supposons que ce données sont plus bas que la ligne 60.

Essai ceci :

  ws.Cells(LgSource, ColSource).Resize(1, 13).Copy
  ws.Cells(LgDestin, ColDestin).Resize(1, 13).Insert shift:=xlDown
  ws.Cells(60, ColDestin).Resize(1, 13).Delete shift:=xlUp  ' < supprimer une ligne pour compenser

  ws.Cells(LgSource, ColSource).Resize(1, 13).Delete shift:=xlUp
  ws.Cells(60, ColSource).Resize(1, 13).Insert shift:=xlDown  ' < insérer une ligne pour compenser

ric

Re,

ric c'est formidable, ça fonctionne super bien.

Merci beaucoup de ton aide.

Bonne journée à toi et au Forum

Et encore merci

Rechercher des sujets similaires à "transfert outils"