mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007
-
3 sept. 2007 à 13:56
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007
-
5 sept. 2007 à 09:17
Salut a tous
bon deja, je previens, je n'y connais strictement rien en VB, desolé
j'ai essayé de rechercher un peu partout, mais je trouve rien..
j'espere deja poster au bon endroit
donc je m'explique,
on m'a demandé de faire un "patch" sur excel
le but:
on a un fichier excel (j'ai pas le droit de modifier le code et les macros qui le genere... ) qui a des liens genre 'feuille1'!L1C1
et vu qu'il faut que ca marche sur excel version anglaise (car elle connait pas L1C1, mais plutot R1C1, ou A1), on m'a dit de faire un truc pour remplacer tous les L1C1 par des A1.
donc genre une macro qui va parcourir le fichier, et des qu'il voit un L1C1 il remplace par A1 .
les questions que j'aurai....
est ce que c'est possible ?? (donc sans que la macro soit appelée avant la generation du fichier) donc en gros, importer et executer la macro que j'aurai faite a coté directement du fichier.
et si oui, si vous pouviez m'expliquer vite fait comment je pourrai faire car moi et excel, ca fait 4
et si vous pouviez me donner une petite ebauche du script
et oui, ca serait 10000 fois plus simple de corriger l'erreur a la source, dans le code qui genere le fichier excel, mais j'ai pas le droit de toucher a la version du logiciel
merci a tous en tout cas
mike, qui galere sur excel et VB
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 3 sept. 2007 à 14:39
Si tu ne peux pas modifier l'original, je pense qu'il te reste à refaire celui-ci avec ton propre code... Tu fais un copie des feuilles, puis tu copies tout le code que tu modifies à ta guise... C'est du moins ce que j'essaierais.
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007 3 sept. 2007 à 15:25
oui mais non
en fait, on est censé donner une version du logiciel (donc executable + macro) et donc ca on ne peut pas les modifier
donc ce n'est pas le fait de ne pas modifier la macro principale, mais c'est le fait de donner la macro et l'exe qui ne corrigent pas ce probleme.
d'ou le fait qu'on m'a demandé de faire ce "patch", qui sera envoyé en plus, qui sera executé ensuite (si c'est possible) lorsque le fichier sera généré
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007 3 sept. 2007 à 15:27
arf, oui, j'avais vu ca Darksidious, mais apres avoir posté :(
et je sais pas s'il m'est possible de deplacer un sujet, ni meme d'editer ma reponse (d'ou mon double post)
merci en tout cas
Vous n’avez pas trouvé la réponse que vous recherchez ?
42wawa42
Messages postés143Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention 6 septembre 2011 3 sept. 2007 à 15:34
Hello mikeOSX
Il n'y a pas de truc à faire.
Excel adapte automatiquement le fichier a la langue du programme Excel donc une conversion interne.
Voir aussi Référence dans le Help de Excel et aussi About R1C1 références .<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
A plus sur VBFrance.com
42wawa42
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007 3 sept. 2007 à 15:53
Salut 42wawa42,
personnellement, j'ai pas pu tester ce probleme vu que je suis sous une version francaise.
mais on m'a dit que ca ne marchait (marcherait ?? ) pas sous la version anglaise.
apres je ne peux pas te dire qui a testé et s'ils l'ont testé ou s'ils se sont juste dit L=ligne, et en anglais Row, donc ca marchera pas.
mais il faut faire quelque chose ???
car le fichier, lorsqu'il est generé, on ecrit directement 'feuille1'!L1C1 et on ne passe pas par la creation d'un lien hypertexte, donc je sais pas si ca rentre en jeu.
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007 4 sept. 2007 à 11:46
hello
merci pour vos reponses.
JM247L, j'ai essayé ce que tu as mis, mais soit j'ai pas compris ou le mettre, soit j'suis pas doué ^^
42wawa42: j'ai deja essayé ca, mais le seul changement que j'ai pu constater, ce sont les colonnes qui passent de A,B,C... a 1,2,3...
mais les liens ne bougent pas (sachant que sans avoir coché la case L1C1, j'utilise quand meme les liens L1C1 et qui marchent..; sur la version francaise)
pour le moment, j'avance un petit peu.
Pour info, maintenant, j'ai le droit de modifier la macro de la version... n'essayez pas de comprendre, moi j'ai arreté d'essayer de comprendre mon superieur :)
donc j'ai créé une fonction sur ce fichier que s'ils veulent modifier les L1C1 en A1, ils n'auront qu'a l'executer...
ca donne ca, mais c'est pas fini car ca marche pas forcement
For Sheet = 1 To Sheets.Count
l_lastRow = Sheets(Sheet).Cells.SpecialCells(xlCellTypeLastCell).Row
l_lastColumn = Sheets(Sheet).Cells.SpecialCells(xlCellTypeLastCell).Column
For colonne = 1 To l_lastColumn
Texte = Sheets(Sheet).Cells(ROW_HEADER, colonne).Value
If LCase(Left(Texte, 11)) = "message id " And Texte <> "" Then
For ligne = ROW_1ST_DATA + 1 To l_lastRow
If Sheets(Sheet).Cells(ligne, colonne).Value <> "" Then
'-Sheets(Sheet).Cells(ligne, colonne).Formula = "=ROUNDDOWN(RC[-2]/RC[-3],2)"
valeur = Sheets(Sheet).Cells(ligne, colonne).Value '- recupere la case, soit 'F1'!L6C1 par ex
longueur = Len(Sheets(Sheet).Cells(ligne, colonne).Value) '-recupere sa longueur
fin = Mid(valeur, longueur - 1) '-recupere la fin, pour savoir si c'est C1, pour ne pas le faire 50 fois :)
If fin = "C1" Then
gauche = Left(Sheets(Sheet).Cells(ligne, colonne).Value, longueur - 2) '-on vire le C1
final = Replace(gauche, "!L", "!A") '-et on remplace le L par le A
Sheets(Sheet).Cells(ligne, colonne).Value = final '-et on remet la version finale dans la case
End If
End If
Next
End If
Next
Next
donc le truc, ca me fait la modif correctement, sauf que apres avoir modifié ces cases... ba les liens ne marchent plus
et meme quand je modifie a la main, par defaut, c'est ecrit: 'F1'!L6C1
si je modifie par exemple pour mettre 'F1'!L7C1, ca me retire le premier ' de l'affichage, mais lorsque je clique sur la cellule, je vois bien pourtant ce '
donc je comprends plus grand chose la ^^
si je met par exemple un autre ' devant ce qui donne ''F1'!L7C1, ca m'ecrit ca en haut, mais que 'F1'!L7C1 dans la cellule...
ca marche pour le lien, mais je ne trouve pas ca propre du tout...
z'avez une chtite idée pour moi ??
mikeOSX
Messages postés6Date d'inscriptionsamedi 15 janvier 2005StatutMembreDernière intervention 5 septembre 2007 5 sept. 2007 à 09:17
ok, je comprends mieux :)
mais ce que je me demande, c'est pourquoi quand je lis la cellule, il ne me redonne pas le ' en meme temps...
enfin bon, c'est pas grave, j'en ai mis un autre devant, et maintenant, ca marche, pas vraiment propre, mais c'est juste pour reparer le truc.
on fera mieux pour la nouvelle version ^^
merci en tout cas