Bonjour à tous,
ça paraît tout bête mais j’ai l’impression que la fonction rechercher/remplacer n’est pas valable pour les requêtes web.
J’ai plus de 7600 cellules à paramétrer individuellement…
Si c’est possible, quelle serait le code à écrire dans Visual basic pour modifier automatiquement les requêtes de toutes les lignes d’une colonne?
Par exemple modifier: www.toto.fr… www.toto.fr… www.toto.fr…
et.
En: www.toto.fr… www.toto.fr… www.toto.fr…
etc.
J’ai 200 lignes que j’ai configuré une à une, et je vais faire un copier/coller de cette colonne de 200 cellules dans la colonne suivante.
Dans cette colonne je veux donc faire un rechercher/remplacer de ceci par exemple:
Rechercher: 102&ID=2
Remplacer par 102&ID=3
Et j’ai 38 colonnes à faire ainsi…
Enregistrer une macro ne fonctionne pas, il faudrait donc créer cela avec Visual basic?
Si j’ai bien compris, dans la deuxième colonne, ID=2 deviendra partout ID=3,
et dans la suivante, il deviendra ID=4 etc …
Dans ce cas, au lieu de copier ta colonne1 dans les suivantes, tu utilises une formule pour incrémenter la valeur, et ensuite tu fais un copier/Collage spécial > valeurs pour retrouver du texte.
Je connais pratiquement pas Excel: on peut donc faire une formule pour les requêtes? Peux-tu me donner grosso modo la marche à suivre?
On est bien d’accord, mes cellules sont vides s’il n’y a rien dans mes tables sql…
Ah non, il n’y avait écrit nulle part que les colonnes (2, 3 …) étaient des résultats de requête.
Moi j’avais lu que tu les créais par copier/coller, puis modification depuis la première :
J’avais mal compris
En je ne pensais pas qu’en recopiant une cellule on recopiait la requête associée
Tu peux me dire comment tu fais ?
Sinon, je ne vois que la solution de passer par le VBA.
tu utilises ActiveSheet.QueryTables.connection() pour identifier la requête associée à ta cellule, puis tu réinjectes après modification.
Enfin, ca, c’est la théorie, je n’ai jamais pratiqué ce genre de chose.
Si ca ne marche pas, il faudra que tu me fournisses quelques données réelles pour voir ce qui ne va pas
ctrl+c puis ctrl+v :lol:
En fait c’est bizarre, lors de la création d’une requête j’ai une ligne perdue en-dessous qui contient aussi un paramétrage de la requête: je n’ai jamais compris pourquoi il y a toujours cette interligne.
Donc si je copie 1 requête il faut sélectionner la ligne en-dessous aussi, sinon le collage ne se fait pas.
Bon, je pense que sans lignes de codes visual basic, ce n’est pas possible de faire ce que je recherche…
En fait, il y a une option pour soit interdire, soit autoriser l’actualisation des données de la requête.
Et quand on accepte l’actualisation, c’est là qu’il doit stocker la requête par elle-même
Sinon, oui, il va bien falloir passer par le vba, mais comme tes requêtes sont déjà recopiées à leur place, du coup ca n’est pas très compliqué :
tu fais une boucle et tu déduis tes paramètres
for i = 1 to activesheet.querytables.count
oldURL = activesheet.querytables.item(i).connection
set R = activesheet.querytables.item(i).destination
' deduire le nouveau parametres
newId = R.column +1
'mettre à jour la requête
activesheet.querytables.item(i).connection = left(oldURL, len(oldURL)-1) + mid(str(newId),2)
next
Pour la nouvelle valeur du paramètre, c’est bien sûr un exemple, il faut voir si cela correspond à la réalité
Ok merci, mais le problème c’est que je n’ai jamais touché à ces codes VBA…
En fait je modifie quoi pour adapter ton code à ce que je recherche?
A savoir remplacer
…toto.fr/excel/majuscules.php?annuaire=68&candidat=101&ID=2
par
…toto.fr/excel/majuscules.php?annuaire=68&candidat=101&ID=3
?
Normalement, rien, mais comme je ne l’ai pas testé, je te suggère de faire un fichier avec simplement quelques lignes et de voir ensuite cellule par cellule comment ça s’est comporté
Difficile à savoir d’où ca vient sans voir le code
Tu as écrit ta fonction dans un module ou dans le code de la feuille ?
Et comment accèdes-tu à l’exécution du code ? par Outils > Macros ?
Bon, je devais avoir des cellules qui parasitaient le bon déroulement de la macro.
J’ai fait un copier/coller de la colonne dans une nouvelle feuille vierge et ça a modifié le lien! :super:
Par contre le lien se finissait par 4 et il est remplacé par un 2? J’ai fait un boulette encore?
Ok, j'ai pigé, le chiffre se modifie selon la colonne!
Je vois tout ça et te tiens au courant...merci pour tout!
Ok, ça marche!
Un dernier point.
Pour changer un autre paramètre de la requête, comme par exemple majuscules.php par espacessuppr.php, je change quoi dans le code?