Macro récalcitrante

briatexte

XLDnaute Nouveau
Bonjour,

J'ai cette macro qui me pose problème.
Mon fichier source s'ouvre, mon fichier destination également.
Cependant, aucune copie n'est réalisée mais en plus je suis obligé de faire ctr-alt-sup pour en sortir.

Pouvez-vous m'aider?

Merci,

NB: Je suis un "petit jeune macrobien" - Donc, simples les explications ;=)

Sub SC11()

Dim classeurSource As Workbook, classeurDestination As Workbook
Dim i As Integer
Dim j As Integer
Dim k As Integer

'ouvrir le classeur source (en lecture seule)
Set classeurSource = Application.Workbooks.Open("V:\Previsions_Activite\cmc\sc11.xls", , True)

'définir le classeur destination
Set classeurDestination = ThisWorkbook

For i = 45 To 82
For j = 1 To 37
For k = 10 To 47



'copier les données de la "Feuil1" du classeur source vers la "Feuil1" du classeur destination
classeurSource.Sheets("sc11").Range("a" & i).Cells.Copy classeurDestination.Sheets("Nbre d'appels").Range("a" & j)
classeurSource.Sheets("sc11").Range("c" & i).Cells.Copy classeurDestination.Sheets("Nbre d'appels").Range("b" & j)
classeurSource.Sheets("sc11").Range("e" & i).Cells.Copy classeurDestination.Sheets("nbre d'appels").Range("c" & j)


classeurSource.Sheets("sc11").Range("a" & k).Cells.Copy classeurDestination.Sheets("TEMPS DE CONNEXION").Range("a" & j)
classeurSource.Sheets("sc11").Range("c" & k).Cells.Copy classeurDestination.Sheets("TEMPS DE CONNEXION").Range("b" & j)

Next k
Next j
Next i


'fermer le classeur source
classeurSource.Close False

End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Macro récalcitrante

Bonjour Briatexte, bonjour le forum,

Fait tourner ta macro pas à pas et tu devrais comprendre où est le problème. Nous, sans fichier on ne peut pas le faire, d'une part, et aussi, on ne sait pas ce que tu veux faire.
Ton code, tel qu'il est, fait 3 boucle d'environ 37 éléments chacune. 37 * 37 * 37 = 50653... Ça fait peut-être beaucoup non ?


Sinon, quelle idée cette couleur orange ? Ça me rappelle quelqu'un tiens !...

[Édition]
Oui ! Bien vu Gigi ! j'avais zappé cela...

[Édition2]
Et puis non finalement, je croyais que c'était ActiveWorkbbok mais avec ThisWorkbook ça devrait le faire...
 
Dernière édition:

briatexte

XLDnaute Nouveau
Re : Macro récalcitrante

Robert,

Eh bien non, je ne suis pas Gigi j'suis Tonio........mais je suis très content de l'accueil.
Effectivement 37*37*37 me fait planter l'ensemble.
Suite à cela j'ai voulu vérifier et j'ai supprimé i et k. Je n'ai conservé que j (for j = 1 to 37)
Je me suis rendu compte que la copie fonctionnait mais par contre j'avais 37 lignes avec la ligne 1 du dossier source.
En fait, à chaque fois que j'ai un "next j", il me recopie sur la ligne suivante du fichier destination la ligne une du fichier source et il me fait cela 37 fois.
y'a t'y une solution?

merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Macro récalcitrante

Bonsoir le fil, bonsoir le forum,

Tonio, comme je l'expliquais dans le post #3, sans fichier c'est compliqué. Et si tu mets un fichier exemple en pièce jointe, montre nous le résultat Avant et Après traitement de la macro (dans deux onglet différents), pour qu'on puisse comprendre ce qu'il faudrait faire...
 

jmps

Nous a quitté
Repose en paix
Re : Macro récalcitrante

Ah comprendre... Comprendre...

Comme dirait Gabin : Je sais... Je sais...
Robert aussi y dit ça mais pas ce coup-là :p

Moi ce que je comprends c'est que ta boucle j va faire la même chose pour les valeurs de i de 45 à 87. C'est donc logique que tu te retrouves avec 47 fois les mêmes données.
En plus ta variable k n'est pas utilisée dans le code, elle ne sert donc à rien si ce n'est à alourdir ton code.

Donc, visiblement on ne comprend rien à ta demande même si on se doute que tu veux copier des cellules contigües vers ton tableau cible en les changeant de colonne. Doit y avoir plus simple que des boucles puisque les valeurs de i, j, k sont en dur.

Bref, reformule ta question en nous montrant un exemple, ça nous aidera à t'aider.

EDIT : Pardon, j'avais pas vu le k qui traîne en bas des boucles. Comme quoi le orange hein... :cool:
 

briatexte

XLDnaute Nouveau
Re : Macro récalcitrante

Rebonjour,

Voilà mes fichiers:
Je vais essayé de vous expliquer.
Mon fichier source est sc11.xls et mon fichier destination est avril2013.xls.

Ce que je souhaite faire:
Le fichier sc11.xls est constitué de nom allant de A à Z. Ces noms sont répétés trois fois sur des lignes différentes.
Mon fichier destination est une copie de ces noms (1 seule fois) et de certaines colonnes de mon fichier source.

J'arrive très bien à gérer cela avec la petite macro appliquée.

Sauf que mon "chef" m'a fait une blague.
Le fichier source ne comporte plus forcement, tous les mois les agents de A à Z, certains étant en congés. Du coup, si je ne modifie pas les valeurs "range", mon tableau final ne ressemble plus à rien.
Jusqu'à maintenant, je modifiais à la "mimine" ces valeurs, mais là, j'en ai marre...........je n'ai plus une équipe mais huit.

Ma question est la suivante:
N'est-il pas possible de ne copier que le nombre de cellules justifiées par un nom ? (première ligne = > titre de la colonne a de sc11.xls - dernière ligne => "TOTAL" colonne a sc11.xls et noms entre les deux, avec la même chose pour les valeurs colonne b,c,d ).

merci,
 

Pièces jointes

  • sc11.xls
    1.3 KB · Affichages: 36
  • avril 2013.zip
    325 KB · Affichages: 31
  • avril 2013.zip
    325 KB · Affichages: 29
  • avril 2013.zip
    325 KB · Affichages: 30

jmps

Nous a quitté
Repose en paix
Re : Macro récalcitrante

Bonsoir briatexte,

Bon, à problème tordu, solution tordue...
J'ai encore eu du mal à comprendre parce que tes agents sont tous renseignés de A à Z mais je suppose que ceux qui seront en congé n'apparaîtront pas dans tes autres tableaux.

Dans le fichier joint tu as une première approche dont tu pourras t'inspirer si tu viens à modifier les règles.
Ici je considère que les agents sont les mêmes dans les 3 pavés (sinon je ne réponds pas du résultat).

Teste et dis-moi.

EDIT : Il y a surement plus élégant mais ça suppose de bien cerner ton besoin et de mettre en place certains contrôles pour vérifier l'intégrité des données. Là je me contente de répondre à ton besoin de ne plus modifier les Range à la main.
 

Pièces jointes

  • avril 2013.zip
    305.3 KB · Affichages: 29
  • avril 2013.zip
    305.3 KB · Affichages: 28
  • avril 2013.zip
    305.3 KB · Affichages: 31
Dernière édition:

briatexte

XLDnaute Nouveau
Re : Macro récalcitrante

Bonjour,

Alors là, a m'en bouche un coin!!!
J'savais que mon chef était con, mais en plus il est tordu!!!!!!!!
Va falloir que je change.


La solution, elle, elle est parfaite........et en plus, j'ai tout compris. J'vais pourvoir devenir chef à la plce du chef.
Maintenant, comme il est tordu, il est capable de me mettre des interlignes variables. Donc, j'vais partir du travail de jmps pour trouver la solution. Mais là, j'veux faire tout seul, comme un grand..

Une place de chef, ça s'mérite.....

Merci à tous.
 

jmps

Nous a quitté
Repose en paix
Re : Macro récalcitrante

Bonjour,
J'savais que mon chef était con, mais en plus il est tordu!!!!!!!!
J'espère qu'il a pas ton pseudo ici :cool:

Je suis au moins content que tu ais réussi à comprendre ma réponse un peu bricolée et empirique.

Bon courage pour devenir vizir à la place du vizir.

N'hésite pas si tu as encore besoin d'aide mais stp, fais un effort sur l'énoncé :p
 

Discussions similaires

Réponses
11
Affichages
346

Statistiques des forums

Discussions
312 450
Messages
2 088 510
Membres
103 873
dernier inscrit
Sabin