Copier des cellules dans un classeur externe

Bonjour à tous et merci d'avance pour ceux qui pourraient m'aider.

J'ai en ma possession deux classeur (Secteur et Programme Pannes), dans mon classeur Secteur j'ai plusieurs colonnes avec des numéros d'appareils et les adresses correspondantes (exemple Colonne I = adresses, J = Numéro d'appareil et ce de la ligne 3 à 29) mais ses listes varient, il peut y avoir plus ou moins de données (Colonnes AC-AD vont jusqu'à la ligne 39 par exemple), il faudrait que je puisse depuis le classeur des pannes allez chercher ces numéros avec les adresses qui correspondent et les mettre à la suite les uns des autres, mais que si je rajoute une nouvelle entrée dans un secteur il faut qu'elle se mette à la bonne place dans le classeur Pannes.

pour le moment la seule solution que j'ai est des faire un report de cellule (Secteur) à cellule (Pannes) avec une formule

='[secteur A à Z.xls]Inventaire 2016'!$J$3

Comment faire directement depuis plusieurs colonnes?

Merci d'avance

11secteur.xlsx (18.02 Ko)
11panne.xlsx (9.57 Ko)

Bonsoir,

Ci-joint une proposition (en VBA) à tester.

Bonne soirée

Bouben

13panne-0-1.xlsm (28.19 Ko)

Merci Bouben,

C'est déjà un excellent début, mais comment faire pour que cela soit automatisé c'est à dire sans avoir à cliquer sur le bouton?

Et mon fichier d'origine secteur(qui est le même que celui qui est joint avec plus de colonnes) renvoi au debogage alors que le fichier Secteur qui était joint fonctionne nickel je n'ai pas compris pourquoi, en fait si je sais c'est le simple fait que le fichier d'origine soit enregistrer en .xls au lieu de .xlsx donc faudrais pouvoir faire tout pareil mais avec un fichier .xls

Ca bloque à ce niveau:

iColFin = oSh.Range("ZZ2").End(xlToLeft).Column

Bonsoir,

Le code VBA est écrit pour Excel 2007 et versions suivantes.

Pour fonctionner sous 2003, il faudra apporter des modifications ... N'ayant pas 2003, je ne peux malheureusement pas vérifier que cela fonctionne.

Pour résoudre le problème cité :

iColFin = oSh.Range("ZZ2").End(xlToLeft).Column

Remplacer "ZZ2" par "KZ2" par exemple (sous 2003 la dernière colonne est IV, de mémoire)

iColFin = oSh.Range("KZ2").End(xlToLeft).Column

Il y aura sans doute d'autres lignes à modifier.

Si quelqu'un a 2003 et peut faire les modifs, ce serait cool !

Bonne soirée

Bouben

bouben a écrit :

Bonsoir,

Le code VBA est écrit pour Excel 2007 et versions suivantes.

Pour fonctionner sous 2003, il faudra apporter des modifications ... N'ayant pas 2003, je ne peux malheureusement pas vérifier que cela fonctionne.

Pour résoudre le problème cité :

iColFin = oSh.Range("ZZ2").End(xlToLeft).Column

Remplacer "ZZ2" par "KZ2" par exemple (sous 2003 la dernière colonne est IV, de mémoire)

iColFin = oSh.Range("KZ2").End(xlToLeft).Column

Il y aura sans doute d'autres lignes à modifier.

Si quelqu'un a 2003 et peut faire les modifs, ce serait cool !

Bonne soirée

Bouben

Salut Bouben,

Encore merci de ton aide mais je vais le faire tourner uniquement sur Excel 2013, par contre comment je fais pour cibler ma feuille car j'ai dans mon fichier d'origine d'autres feuilles avant celle qui me sert de liste.

Merci d'avance

Bonsoir,

Pour "pointer" sur la bonne feuille, il suffit de modifier la ligne suivante :

Set oSh = oWB.Worksheets(1)

En indiquant le nom de la feuille.

Exemple :

Set oSh = oWB.Worksheets("Inventaire 2016")

(dans la procédure "Private Sub Etudier(psFichier As String)")

Bonne soirée !

Bouben

Bonsoir,

J'avais déjà essayé mais ça ne fonctionnais pas, j'ai tout de même testé comme tu dis mais j'ai l'erreur suivante:

Le focus ne peut être déplacé sur le contrôle car celui-ci est invisible, non activé, ou d'un type n'acceptant pas le focus.

9modele-test.xlsx (12.24 Ko)

Bonjour, premièrement, je suis vraiment novice en Macros et VBA, j'ai un besoin presque similaire, j'ai un tableur avec une feuille récapitulant les données comptables de plusieurs entreprises (en colonnes), je voudrai donc créer,sur demande, pour chaque entreprise (1 colonne du nom fusionnant 4 colonnes (2014,2015,2016 et 2017), une feuille excel portant le nom de l'entreprise avec la colonne titre et les données des 4 colonnes de l'entreprise.

Un fichier test est joint pour plus de visibilité.

Je serais vraiment reconnaissant aux réponses et aux efforts d'assistance

Rechercher des sujets similaires à "copier classeur externe"