Changer un nombre dans un formule string qui se répète de cellul
Résolu/Fermé
Utilisateur anonyme
-
26 nov. 2013 à 17:14
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 2 déc. 2013 à 21:14
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 2 déc. 2013 à 21:14
A voir également:
- Changer un nombre dans un formule string qui se répète de cellul
- Changer dns - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
9 réponses
Utilisateur anonyme
26 nov. 2013 à 19:04
26 nov. 2013 à 19:04
Bonjour, merci pour les réponses rapides. Mais comme j'ai écris, je suis débutant donc c'est un peu du chinois pour moi.
Si je comprends, "cptr" change le chiffre en nombre ?
cells (Lig, "A") c'est quoi "Lig", "A" viens d'ou?
le Range n'est jamais le même, on peut le remplacer par "*"?
Dernière chose, le chiffre n'est pas nécessairement 5 ou 7 ou 8, ça dépend de la page qui est appelée. Peut-on la aussi mettre "*"?
merci
Si je comprends, "cptr" change le chiffre en nombre ?
cells (Lig, "A") c'est quoi "Lig", "A" viens d'ou?
le Range n'est jamais le même, on peut le remplacer par "*"?
Dernière chose, le chiffre n'est pas nécessairement 5 ou 7 ou 8, ça dépend de la page qui est appelée. Peut-on la aussi mettre "*"?
merci
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
26 nov. 2013 à 17:51
26 nov. 2013 à 17:51
Bonjour,
évite VBA et utilise la fonction INDIRECT !
=INDIRECT(A1&"CR41") en mettant en A1 le nom de la feuille.
A+
évite VBA et utilise la fonction INDIRECT !
=INDIRECT(A1&"CR41") en mettant en A1 le nom de la feuille.
A+
Utilisateur anonyme
26 nov. 2013 à 18:02
26 nov. 2013 à 18:02
Bonjour, merci pour la réponse mais désolé, je ne sais pas quoi faire avec... Je mets quoi avant le = et comment j'incrémente en automatique? Je débute en VBA.
J'aimerais changer le numéro de page dans chaque cellule (mais pas la manière dont elle est inscrite). Il y a des centaines de cellules à changer. Chaque ligne comporte environ 50 cellules et j'aimerais pouvoir changer la page pour chaque cellule de chaque ligne. Une ligne est attribuée à une page.
Merci!
J'aimerais changer le numéro de page dans chaque cellule (mais pas la manière dont elle est inscrite). Il y a des centaines de cellules à changer. Chaque ligne comporte environ 50 cellules et j'aimerais pouvoir changer la page pour chaque cellule de chaque ligne. Une ligne est attribuée à une page.
Merci!
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
26 nov. 2013 à 19:21
26 nov. 2013 à 19:21
Re,
C'est pour ça que je te proposais de te passer de VBA.
Connais-tu un peu les fonctions Excel ? En B1 écris la formule (qui commence donc par "=") proposée ci-dessous et en A1 le nom de l'onglet.
A+
C'est pour ça que je te proposais de te passer de VBA.
Connais-tu un peu les fonctions Excel ? En B1 écris la formule (qui commence donc par "=") proposée ci-dessous et en A1 le nom de l'onglet.
A+
OK, je travail à partir du VBA. Mon fichier est très complexe et je dois faire beaucoup de macro pour arriver au résultat rechercher. Je travail exclusivement à partir d'un fichier VBA que j'ai créer. Je ne travail pas dans excel. Mes résultats sont appliqués à mon fichier excel. Je n'ai pas pensé que c'était une formule excel. Je pense que la solution ci-dessous fonctionne mais je ne sais pas comment l'appliquer à mon fichier VBA.
merci
merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 26/11/2013 à 18:40
Modifié par michel_m le 26/11/2013 à 18:40
bonjour,
on peut utiliser des formules excel dans VBA, mais si on peut s'en passer...
a adapter
Michel
on peut utiliser des formules excel dans VBA, mais si on peut s'en passer...
a adapter
For cptr=5 to 7
Lig=2
cells(Lig,"A")=sheets(cptr).range("CR41")
Lig=Lig+1
next
Michel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
29 nov. 2013 à 04:28
29 nov. 2013 à 04:28
Bonjour
Oui, les termes "Formule, ParentheseDeb, ParentheseFin, NumFeuille" sont tous des variables.
Votre demande n'étant pas suffisamment claire aux yeux de tous, (pour vous, ça l'est suffisamment, mais vu de l'extérieur, ça ne l'est pas du tout). Je vous avais proposé de mettre un échantillon de votre fichier bien commenté (sans données personnelles) sur Cjoint.com pour que nous puissions bien en comprendre la structure, et ainsi vous fournir une réponse adapté, mais notre discussion a disparu du forum (une mauvaise manip sans doute).
Donc , je répète, si on ne veut pas tourner en rond, soit vous reformulez votre demande de façon qu'elle soit compréhensible par tous, soit vous déposez sur Cjoint.com un échantillon de votre fichier que vous aurez pris soin d'argumenté le plus clairement possible.
Ne vous inquiétez pas, dès que ce sera clair pour tout le monde, les réponses vont affluer.
Bonne journée.
cdllt
Oui, les termes "Formule, ParentheseDeb, ParentheseFin, NumFeuille" sont tous des variables.
Votre demande n'étant pas suffisamment claire aux yeux de tous, (pour vous, ça l'est suffisamment, mais vu de l'extérieur, ça ne l'est pas du tout). Je vous avais proposé de mettre un échantillon de votre fichier bien commenté (sans données personnelles) sur Cjoint.com pour que nous puissions bien en comprendre la structure, et ainsi vous fournir une réponse adapté, mais notre discussion a disparu du forum (une mauvaise manip sans doute).
Donc , je répète, si on ne veut pas tourner en rond, soit vous reformulez votre demande de façon qu'elle soit compréhensible par tous, soit vous déposez sur Cjoint.com un échantillon de votre fichier que vous aurez pris soin d'argumenté le plus clairement possible.
Ne vous inquiétez pas, dès que ce sera clair pour tout le monde, les réponses vont affluer.
Bonne journée.
cdllt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
2 déc. 2013 à 21:14
2 déc. 2013 à 21:14
Bonsoir
avec la cellule à incrémenter en A1
avec la cellule à incrémenter en A1
Valeur = Range("A1").Valuecdlt
PositionDiese = InStr(1, Valeur, "#", 1)
Range("A1").Value = Left(Valeur, 9) & CLng(Right(Valeur, Len(Valeur) - (PositionDiese))) + 1
Utilisateur anonyme
28 nov. 2013 à 13:13
28 nov. 2013 à 13:13
Bonjour, je n'ai toujours pas résolu mon problème. Donc je repose ma question.
j'ai un fichier excel qui a 90 pages dans le quelle il y a des centaines de formule. Les formules se réfèrent sur plusieurs pages. Je dois changer dans une page, une des formules qui se retrouve dans chaque cellule d'une ligne. Il y a 90 cellule par ligne. La formule est la suivante: ='# (4)'!H$2
Dans la formule, je dois changer le chiffre entre parenthèse. Qui n'est pas nécessairement le même d'une cellule à l'autre. La première section de la formule appelle une page soit :#(4)
Donc, en clair, dans un fichier VBA, je veux changer un chiffre d'une formule qui se répète dans chaque cellule et qui change régulièrement. Ma connaissance du VBA grandi de jour en jour mais je ne trouve pas ça évident.à
merci de votre aide.
j'ai un fichier excel qui a 90 pages dans le quelle il y a des centaines de formule. Les formules se réfèrent sur plusieurs pages. Je dois changer dans une page, une des formules qui se retrouve dans chaque cellule d'une ligne. Il y a 90 cellule par ligne. La formule est la suivante: ='# (4)'!H$2
Dans la formule, je dois changer le chiffre entre parenthèse. Qui n'est pas nécessairement le même d'une cellule à l'autre. La première section de la formule appelle une page soit :#(4)
Donc, en clair, dans un fichier VBA, je veux changer un chiffre d'une formule qui se répète dans chaque cellule et qui change régulièrement. Ma connaissance du VBA grandi de jour en jour mais je ne trouve pas ça évident.à
merci de votre aide.
Utilisateur anonyme
28 nov. 2013 à 21:38
28 nov. 2013 à 21:38
Quelqu'un m'a donné cette formule qui je crois devrais fonctionner mais il me manque quelque chose pour que ça fonctionne.
formule = [c10].formula
ParentheseDeb = InStr(1, formule, "(", 1)
ParentheseFin = InStr(1, formule, ")", 1)
NumFeuille = Mid(formule, ParentheseDeb + 1, ParentheseFin - (ParentheseDeb + 1))
Est-ce que ParentheseDeb et parenthesefin doivent être des variables? Numfeuille, c'est aussi une variable? si oui, comment on écris cela?
merci
formule = [c10].formula
ParentheseDeb = InStr(1, formule, "(", 1)
ParentheseFin = InStr(1, formule, ")", 1)
NumFeuille = Mid(formule, ParentheseDeb + 1, ParentheseFin - (ParentheseDeb + 1))
Est-ce que ParentheseDeb et parenthesefin doivent être des variables? Numfeuille, c'est aussi une variable? si oui, comment on écris cela?
merci
Merci pour la réponse. J'ai trouvé la solution à mon problème. Il me manquait une ligne pour que ça fonctionne. Mais j'ai encore un autre problème du même genre. Plus simple cette fois je crois.
j 'ai une cellule avec comme valeur: CHOIX eq#2
je veux incrémenter le chiffre à la fin seulement en automatique et en VBA, pas en excel. Je n'y arrive pas et je ne trouve pas de tuto qui explique comment faire pour incrémenter un nombre dans un texte.
La solution est probablement très simple. Dans excel, avec recherche/replace, c'est très facile.
merci de votre aide.
j 'ai une cellule avec comme valeur: CHOIX eq#2
je veux incrémenter le chiffre à la fin seulement en automatique et en VBA, pas en excel. Je n'y arrive pas et je ne trouve pas de tuto qui explique comment faire pour incrémenter un nombre dans un texte.
La solution est probablement très simple. Dans excel, avec recherche/replace, c'est très facile.
merci de votre aide.
Modifié par Polux31 le 26/11/2013 à 20:03
Michel_m a précisé qu'il fallait l'adapter à ton cas ...
cptr est une variable qui va servir d'indice pour parcourir les feuilles de ton classeur (dans l'exemple, les feuilles 5, 6 et 7.
Cells([ligne],[colonne]) est une cellule d'une feuille qui est repérée par son numéro de ligne et colonne.
Dans n'importe quel tuto sur excel tu as ce genre d'info. Quand on travaille sur un outil mal connu, on fait un minimum de recherche pour comprendre comment ça fonctionne ...
Et non, "*" ne remplace pas n'importe quoi dans un code ...
On comprend que tu sois dans ton projet, mais pas nous. Tes explications sont confuses et les éléments que tu donnes ne sont pas suffisamment détaillés et précis pour qu'on puisse te donner plus de piste ou de solution.
Modifié par michel_m le 27/11/2013 à 08:50
Pour aller dans le sens de Polux de Toulouse(?) que je salue
Pour apprendre les rudiments de VBA
sites:
http://www.info-3000.com/
http://www.excelabo.net/accueil
etc.
tuto à télécharger
https://bidou.developpez.com/article/VBA/
à imprimer et garder sous le coude
Dis toi bien que tous les développeurs VBA-Excel et autres langages, quelque soit leur niveau, fouinent très souvent dans les tutos, astuces et les FAQ par ex
https://excel.developpez.com/faq/
tu as aussi des astuces sur CCM (cherche un peu sur ce site)
Mais avant toute chose, se souvenir de ce vieux proverbe ringard;
"un problème bien posé est à moitié résolu"
soit en patois informatique
écrire le système d'information (S.I.)
enfin dernier préchi-précha:
"avant de penser VBA , penser Excel"
bonne découverte et surtout, reste zen devant les nombreux bugs que l'on sait tous bien faire !