Bonjour
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address
dans une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í
ce que j'insère une ligne plus haut que la ligne 12 ... le contenu
attendu se retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et
non son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Bonjour
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address
dans une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í
ce que j'insère une ligne plus haut que la ligne 12 ... le contenu
attendu se retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et
non son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Bonjour
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address
dans une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í
ce que j'insère une ligne plus haut que la ligne 12 ... le contenu
attendu se retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et
non son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Une idée comme ça..... Pourquoi ne pas nommer ta cellule, ainsi tu y fais
référence dans ta macro avec Range("toto") et tu ne t'occupes plus de son
adresse.
Une idée comme ça..... Pourquoi ne pas nommer ta cellule, ainsi tu y fais
référence dans ta macro avec Range("toto") et tu ne t'occupes plus de son
adresse.
Une idée comme ça..... Pourquoi ne pas nommer ta cellule, ainsi tu y fais
référence dans ta macro avec Range("toto") et tu ne t'occupes plus de son
adresse.
Bonjour LaurentC
Je me permet de te répondre sur un sujet paru dans PonxOffice auquel ne ne
pouvais répondre (pas les droits).
Il s'agit plus d'une réflexion que d'une réponse Í ce problème
Si tu n'est pas le bon LaurentC tant pis et mille excuses pour la
"pollution"...
<Après mÍ»re réflexion, LaurentC a écrit :
<
<Bonjour Í tous
<
<J'essaye de visualiser mes performances sur les titres de mon PEA. Pour<
celÍ je tapisse une feuille Excel 365 avec tout un tas de cellule
< avec la fonction historique.actions() pointant vers différents couples< de
nom valeur / date début / date fin.
<
<Si il y a peu de cellule et donc peu de requête, ça fonctionne bien.
<Si j'abuse un peu, je me retrouve avec des cellules marquées #BUSY !
< qui finissent pas se remplir.
<Si j'abuse beaucoup, Í la fin je me retrouve avec des cellules marquées<
#CONNEXION !
<... et Í la fin ça marche plus du tout (lÍ tout de suite le service web< ne
me répond pas du tout).
<
<Savez vous si il y a des limites dans l'usage de cette fonction ?
<
<Autre question :
<Lorsque Excel cherche des valeurs avec la fonction historique.actions()
<, il marque dans la cellule (plus ou moins longtemps) #BUSY ! et tout en<
bas Í gauche de mon Excel, Í coté de "Prêt", il écrit "Calculer" ...
< Ce calculer reste lÍ jusqu'Í ce que toutes les cellules ne soient plus
< #BUSY ! ok.
<
<Comment détecter cette état "Calculer" en VBA.
Bonjour,
comme MichD je ne connais pas.
Néanmoins si je comprends bien le problème il s'agit d'un temps d'attente qui
enfle de manière exponentiel rapporté au nombre de fonction
Historique.Action() utilisé.
Dans ce cas, s'il n'y a qu'une utilisation de Historique.Action() ça va.
Il est peut-être possible, par VBA, de créer une boucle inscrivant
Historique.Action() un par un.
Une fois l'un inscrit, calculer, copier le résultat et coller la valeur au
même endroit ou ailleur et passer Í la cote suivante.
Pour contourner le problème temporel.
En espérant t'avoir apporté une piste de réflexion bonne soirée.
Bonjour LaurentC
Je me permet de te répondre sur un sujet paru dans PonxOffice auquel ne ne
pouvais répondre (pas les droits).
Il s'agit plus d'une réflexion que d'une réponse Í ce problème
Si tu n'est pas le bon LaurentC tant pis et mille excuses pour la
"pollution"...
<Après mÍ»re réflexion, LaurentC a écrit :
<
<Bonjour Í tous
<
<J'essaye de visualiser mes performances sur les titres de mon PEA. Pour<
celÍ je tapisse une feuille Excel 365 avec tout un tas de cellule
< avec la fonction historique.actions() pointant vers différents couples< de
nom valeur / date début / date fin.
<
<Si il y a peu de cellule et donc peu de requête, ça fonctionne bien.
<Si j'abuse un peu, je me retrouve avec des cellules marquées #BUSY !
< qui finissent pas se remplir.
<Si j'abuse beaucoup, Í la fin je me retrouve avec des cellules marquées<
#CONNEXION !
<... et Í la fin ça marche plus du tout (lÍ tout de suite le service web< ne
me répond pas du tout).
<
<Savez vous si il y a des limites dans l'usage de cette fonction ?
<
<Autre question :
<Lorsque Excel cherche des valeurs avec la fonction historique.actions()
<, il marque dans la cellule (plus ou moins longtemps) #BUSY ! et tout en<
bas Í gauche de mon Excel, Í coté de "Prêt", il écrit "Calculer" ...
< Ce calculer reste lÍ jusqu'Í ce que toutes les cellules ne soient plus
< #BUSY ! ok.
<
<Comment détecter cette état "Calculer" en VBA.
Bonjour,
comme MichD je ne connais pas.
Néanmoins si je comprends bien le problème il s'agit d'un temps d'attente qui
enfle de manière exponentiel rapporté au nombre de fonction
Historique.Action() utilisé.
Dans ce cas, s'il n'y a qu'une utilisation de Historique.Action() ça va.
Il est peut-être possible, par VBA, de créer une boucle inscrivant
Historique.Action() un par un.
Une fois l'un inscrit, calculer, copier le résultat et coller la valeur au
même endroit ou ailleur et passer Í la cote suivante.
Pour contourner le problème temporel.
En espérant t'avoir apporté une piste de réflexion bonne soirée.
Bonjour LaurentC
Je me permet de te répondre sur un sujet paru dans PonxOffice auquel ne ne
pouvais répondre (pas les droits).
Il s'agit plus d'une réflexion que d'une réponse Í ce problème
Si tu n'est pas le bon LaurentC tant pis et mille excuses pour la
"pollution"...
<Après mÍ»re réflexion, LaurentC a écrit :
<
<Bonjour Í tous
<
<J'essaye de visualiser mes performances sur les titres de mon PEA. Pour<
celÍ je tapisse une feuille Excel 365 avec tout un tas de cellule
< avec la fonction historique.actions() pointant vers différents couples< de
nom valeur / date début / date fin.
<
<Si il y a peu de cellule et donc peu de requête, ça fonctionne bien.
<Si j'abuse un peu, je me retrouve avec des cellules marquées #BUSY !
< qui finissent pas se remplir.
<Si j'abuse beaucoup, Í la fin je me retrouve avec des cellules marquées<
#CONNEXION !
<... et Í la fin ça marche plus du tout (lÍ tout de suite le service web< ne
me répond pas du tout).
<
<Savez vous si il y a des limites dans l'usage de cette fonction ?
<
<Autre question :
<Lorsque Excel cherche des valeurs avec la fonction historique.actions()
<, il marque dans la cellule (plus ou moins longtemps) #BUSY ! et tout en<
bas Í gauche de mon Excel, Í coté de "Prêt", il écrit "Calculer" ...
< Ce calculer reste lÍ jusqu'Í ce que toutes les cellules ne soient plus
< #BUSY ! ok.
<
<Comment détecter cette état "Calculer" en VBA.
Bonjour,
comme MichD je ne connais pas.
Néanmoins si je comprends bien le problème il s'agit d'un temps d'attente qui
enfle de manière exponentiel rapporté au nombre de fonction
Historique.Action() utilisé.
Dans ce cas, s'il n'y a qu'une utilisation de Historique.Action() ça va.
Il est peut-être possible, par VBA, de créer une boucle inscrivant
Historique.Action() un par un.
Une fois l'un inscrit, calculer, copier le résultat et coller la valeur au
même endroit ou ailleur et passer Í la cote suivante.
Pour contourner le problème temporel.
En espérant t'avoir apporté une piste de réflexion bonne soirée.
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address dans
une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í ce
que j'insère une ligne plus haut que la ligne 12 ... le contenu attendu se
retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et non
son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Bonjour,
Désolé, j'ai de la difficulté Í comprendre ton problème, ce que la macro doit
faire.
Si tu utilises une adresse absolue de cellule comme $B$12, tu vas avoir des
difficultés. Utilise plutÍ´t une adresse relative comme ceci :
MaCellule = Range("A1").address(0,0) , les 2 paramètres 0 signifient que la
lettre et la ligne ont un format du type B12 (voir l'aide d'Excel en
utilisant la touche F1 lorsque le curseur est sur Address), si tu copies
cette ligne vers le bas en VBA, elle va s'incrémenter...
Si c'est possible, apporte un supplément d'information et aussi les quelques
lignes de code de la macro et ce que tu n'arrives pas Í écrire comme code
pour ce dont tu veux faire.
MichD
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address dans
une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í ce
que j'insère une ligne plus haut que la ligne 12 ... le contenu attendu se
retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et non
son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Bonjour,
Désolé, j'ai de la difficulté Í comprendre ton problème, ce que la macro doit
faire.
Si tu utilises une adresse absolue de cellule comme $B$12, tu vas avoir des
difficultés. Utilise plutÍ´t une adresse relative comme ceci :
MaCellule = Range("A1").address(0,0) , les 2 paramètres 0 signifient que la
lettre et la ligne ont un format du type B12 (voir l'aide d'Excel en
utilisant la touche F1 lorsque le curseur est sur Address), si tu copies
cette ligne vers le bas en VBA, elle va s'incrémenter...
Si c'est possible, apporte un supplément d'information et aussi les quelques
lignes de code de la macro et ce que tu n'arrives pas Í écrire comme code
pour ce dont tu veux faire.
MichD
Au cours d'une Sub(), j'écris l'adresse d'une première cellule.address dans
une seconde sous la forme $B$12, plus loin j'utilise la fonction
indirect() vers la seconde cellule et retrouve le contenu de la première
cellule B12, ok c'est super ça fonctionne ... euf, ça fonctionne jusqu'Í ce
que j'insère une ligne plus haut que la ligne 12 ... le contenu attendu se
retrouve en B13 et mon adresse n'est plus bonne :-(
Y a t'il moyen d'écrire dans une cellule la référence d'une cellule et non
son adresse ?
Une référence qui bougerait lorsque j'insère une ligne ou colonne pour
désigner le même contenu ...
Merci pour vos idées
@+Laurent
Bonjour,
Désolé, j'ai de la difficulté Í comprendre ton problème, ce que la macro doit
faire.
Si tu utilises une adresse absolue de cellule comme $B$12, tu vas avoir des
difficultés. Utilise plutÍ´t une adresse relative comme ceci :
MaCellule = Range("A1").address(0,0) , les 2 paramètres 0 signifient que la
lettre et la ligne ont un format du type B12 (voir l'aide d'Excel en
utilisant la touche F1 lorsque le curseur est sur Address), si tu copies
cette ligne vers le bas en VBA, elle va s'incrémenter...
Si c'est possible, apporte un supplément d'information et aussi les quelques
lignes de code de la macro et ce que tu n'arrives pas Í écrire comme code
pour ce dont tu veux faire.
MichD
Pourquoi
es-tu obligé d'insérer des lignes plutÍ´t que d'en ajouter ?
Pourquoi
es-tu obligé d'insérer des lignes plutÍ´t que d'en ajouter ?
Pourquoi
es-tu obligé d'insérer des lignes plutÍ´t que d'en ajouter ?
Salut MichD
Je vais essayé d'être plus clair ...
Dans la cellule P139 j'ai la valeur 100 (appelons cette cellule toto).
Dans la cellule B2 j'ai la référence P139 ou $P$139 (le problème est le
même).
Dans une autre cellule, si j'écris =INDIRECT(B2), la cellule affiche
100, ok.
Si j'insère une ligne entre les lignes 99 et 100, ma cellule P139 (toto)
se retrouve en P140, ma cellule B2 pointe toujours vers P139 et ma
formule indirect ne fonctionne plus :-(
L'idée de ThierryP est judissieuse mais semble innaplicable puisque j'ai
actuellement plusieurs centaines de lignes et en aurait plus bientÍ´t.
Salut MichD
Je vais essayé d'être plus clair ...
Dans la cellule P139 j'ai la valeur 100 (appelons cette cellule toto).
Dans la cellule B2 j'ai la référence P139 ou $P$139 (le problème est le
même).
Dans une autre cellule, si j'écris =INDIRECT(B2), la cellule affiche
100, ok.
Si j'insère une ligne entre les lignes 99 et 100, ma cellule P139 (toto)
se retrouve en P140, ma cellule B2 pointe toujours vers P139 et ma
formule indirect ne fonctionne plus :-(
L'idée de ThierryP est judissieuse mais semble innaplicable puisque j'ai
actuellement plusieurs centaines de lignes et en aurait plus bientÍ´t.
Salut MichD
Je vais essayé d'être plus clair ...
Dans la cellule P139 j'ai la valeur 100 (appelons cette cellule toto).
Dans la cellule B2 j'ai la référence P139 ou $P$139 (le problème est le
même).
Dans une autre cellule, si j'écris =INDIRECT(B2), la cellule affiche
100, ok.
Si j'insère une ligne entre les lignes 99 et 100, ma cellule P139 (toto)
se retrouve en P140, ma cellule B2 pointe toujours vers P139 et ma
formule indirect ne fonctionne plus :-(
L'idée de ThierryP est judissieuse mais semble innaplicable puisque j'ai
actuellement plusieurs centaines de lignes et en aurait plus bientÍ´t.
Moi, j'essayerais comme ça :
En P139 ==> la valeur 100
En B2 au lieu d'écrire l'adresse de la cellule P139, j'inscrirais la formule
suivante : ="P"&LIGNE((DECALER($P139;;;;)))
Dans une autre cellule : Tu peux inscrire la formule : Indirect(B2)
Lorsque tu ajoutes une ligne, la formule en B2 retournera P140, la nouvelle
adresse de la cellule contenant la valeur 100. La cellule contenant la
formule =Indirect(B2) retournera 100.
Moi, j'essayerais comme ça :
En P139 ==> la valeur 100
En B2 au lieu d'écrire l'adresse de la cellule P139, j'inscrirais la formule
suivante : ="P"&LIGNE((DECALER($P139;;;;)))
Dans une autre cellule : Tu peux inscrire la formule : Indirect(B2)
Lorsque tu ajoutes une ligne, la formule en B2 retournera P140, la nouvelle
adresse de la cellule contenant la valeur 100. La cellule contenant la
formule =Indirect(B2) retournera 100.
Moi, j'essayerais comme ça :
En P139 ==> la valeur 100
En B2 au lieu d'écrire l'adresse de la cellule P139, j'inscrirais la formule
suivante : ="P"&LIGNE((DECALER($P139;;;;)))
Dans une autre cellule : Tu peux inscrire la formule : Indirect(B2)
Lorsque tu ajoutes une ligne, la formule en B2 retournera P140, la nouvelle
adresse de la cellule contenant la valeur 100. La cellule contenant la
formule =Indirect(B2) retournera 100.