XL 2010 echange entre classeurs

Max22

XLDnaute Nouveau
1) si le nom du paramètre a récupérer dans un fichier n'existe pas ou est mal orthographié , alors la recup du reste de la ligne pour ce fichier s'arrette.
est il possible de gerer cette exeption ( que je vais corriger au fur et à mesure des mises à jour des projets) et de mettre la cellule en rose =0

2) L’accès http: ne semble pas marcher

sinon merci de votre temps passé ;), mais pour lire le code , pour moi c'est du compact :eek:
 

Dranreb

XLDnaute Barbatruc
Pff… Encore des données pas chargées dans un tableau…
Cela dit je ne vois pas pourquoi ça devrait suspendre le reste: il y a un On Error Resume Next qui court, alors si le nom n'existe pas l'affectation ne peut pas se faire mais ça devrait continuer à s'exécuter.
 

mécano41

XLDnaute Accro
Chez moi, tout fonctionne. Je mets l'appli sans autre changement que deux paramètres supplémentaires et éclatement pour supprimer le fait d'avoir plusieurs instructions sur la même ligne afin que tu comprenne mieux.
Tu avais mal nommé une cellule dans le projet B si je me souviens bien ; une fois l'erreur corrigée, cela fonctionne. J'ai fait un essai en rajoutant
deux paramètres dans le fichier C en faisant volontairement une erreur dans le premier : cela n'empêcha pas de continuer et d'écrire le suivant. La cellule reste vide, c'est tout.
Je ne vois pas comment on pourrait détecter qu'il y a une erreur dans les noms de cellules d'un fichier vu que l'on ne sait pas, a priori ,ce qu'il peut y avoir...(si demain tu as Par1, Par2 et Par 3 qui peut dire si Par2 aurait dû être Par 3...

Cordialement
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Mais qu'est-ce que ça couterait de faire un TNomsCel = Range([VérifRép].Offset(-1, 0), [VérifRép].Offset(-1, 0).End(xlToRight)).Value
pour économiser ensuite un accès pénalisant aux cellules de cette plage pour chaque nom de chaque classeur ?
Ne change rien par rapport à ce que je disais: ça ne devrait pas bloquer le remplissage du reste, sauf si tout le reste est faux aussi.
 

Max22

XLDnaute Nouveau
Bonjour Dranreb
je suis ravi que nous soyons en ligne en meme temps :) merci de votre aide :)
cela va peut etre me permettre de mieux m'expliquer
 

Max22

XLDnaute Nouveau
non tout n'est pas faux apres , seulement les valeurs en rose du tableau!
les valeurs en jaunes existent et devraient etre retournées
 

Dranreb

XLDnaute Barbatruc
De toute façon même en laissant sous forme de Range la plage des noms je ne spécifierais pas RngNmRech(C).Value mais RngNmRech(1, C).Value.
Mettez un point d'arrêt, déroulez en pas à pas et mettez des espions pour trouver ce qui ne va pas.
 

mécano41

XLDnaute Accro
Bonjour,

@Dranreb
J'ai trouvé quelque chose de surprenant pour moi avec la boucle :
Code:
For C = 1 To NbRés - 2: TRés(L, 2 + C) = Range(RngNmRech(C).Value).Value: Next C
Lorsque les trois instructions ne sont plus sur la même ligne, cela fonctionne normalement, même après un trou on affiche bien les autres paramètres...si on les remet comme initialement, cela ne fonctionne plus...

Cela me laisse perplexe. Une explication?

@Max22
Je vais regarder pour utiliser une plage Liste des paramètres et je renvoie un fichier. J'y ajouterai des commentaires pour les ligne de code...

Cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour
Je dois vous remercier de m'avoir appris (ou réappris ?) quelque chose, à quoi je devrai faire attention, mais qui pourra me resservir, utilisé intentionnellement: La fin de On Error Resume Next signifie Reprendre Suivante, mais ligne suivante et non pas instruction suivante !
Merci.
 

Max22

XLDnaute Nouveau
Bonjour à tous

oui ça marche pour moi aussi , mais en local , pas sur les liens https.
Vous y êtes presque :)

Vous pensez savoir où ça coince ?
 

Max22

XLDnaute Nouveau
merci également beaucoup pour les commentaires ca y est j'ai traduit la structure en fait c'est simple.
Reste encore le code à ausculter !

pour le lien http: peut etre faut il mettre un "anonymous " qqpart pour être polis :)
 

mécano41

XLDnaute Accro
Bonjour,

Pour ce qui est de la récupération de données sur un site, je n'y connais rien...

Sinon, dans ton fichier, je vois que tu as rajouté un effacement des données. Il y a deux sortes de boutons (et autres contrôles). Pour le premier, j'avais choisi un Contrôle ActivX comme j'en ai l'habitude (plus de possibilités - Dranreb infirmera ou confirmera) et toi tu as choisi le Contrôle de formulaire.
Il serait plus logique que ce soit homogène. J'ai mis tout selon mon habitude, mais tu peux aussi faire l'inverse et garder ta méthode pour les deux.

Pour créer la bouton, faire :
- Développeur dans le ruban
- Insérer
- Dans la partie Contrôles ActivX, clic sur le bouton
- On dessine et on place le bouton
- Clic droit sur le bouton
- Propriétés
- Dans la fenêtre, on peut déjà sur le ligne (Name) mettre le nom souhaité pour le bouton et le Sub correspondant et sur la ligne Caption, le texte devant figurer sur le bouton (on pourra revenir plus tard pour modifier dimensions, couleurs...)
- Double-clic sur le bouton. Cela renvoie à l'endroit où le Sub est préparé pour recevoir le code (à mettre maintenant ou plus tard). C'est forcément dans la feuille où est implanté le bouton
- On quitte le mode création en allant dans Développeur/ModeCréation (perso. j'ai mis une icône dans la barre d'outils)

Le code que j'ai mis pour l'effacement est celui-ci ; tu peux éventuellement le récupérer si tu gardes ton bouton tel quel :
Code:
[VérifRép].Resize(, Range([ListeParam].Offset(-1, 0), [ListeParam].Offset(-1, 0).End(xlToRight)).Columns.Count + 2).ClearContents
Ce code ajuste automatiquement la zone à effacer si tu ajoutes des lignes ou des colonnes.

Comme précédemment, j'ai juste mis RM- devant le nom de fichier

Cordialement
 

Fichiers joints

Discussions similaires


Haut Bas