> Tous les forums > Forum Bureautique
 Ajouter caractère à la fin de chaque cellule d'une plage de cellule
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
john_johnk
  Posté le 08/05/2019 @ 17:21 
Aller en bas de la page 
Petit astucien

Bonjour,

Je souhaiterais ajouter une division par 2 à la fin de chaque cellule d'une plage de cellule contenant de longues formules.

J'ai tenté la fonction remplacer avec rechercher *.* et remplacer par &/2 mais cela ne fonctionne pas et la cellule entière est remplacée par /2 m'effaçant toute la formule.

Qqun serait il en mesure de m'aider.

Merci infiniment

Publicité
gilbert_rgi
 Posté le 09/05/2019 à 10:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Comme ceci peut-être

=(votre longue formule)/2

bonne journée

Debrief
 Posté le 09/05/2019 à 12:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

A part modifier les formules 1 à 1 je ne vois pas comment intervenir sur les formules de toutes les cellules d'une seule entrée.

La seule façon de le faire automatiquement est d'utiliser une macro, par exemple:


Sub FormuleDivisePar2()
Dim Cel As Range

For Each Cel In Selection
If Cel.HasFormula Then Cel.Formula = "=(" & Mid(Cel.Formula, 2) & ")/2"
Next Cel

MsgBox "Toutes les formules ont été modifiées dans le Range sélectionné " & Selection.Address
End Sub

Sélectionner la zone à modifier et exécuter la macro. Les cellules qui contiennent des formules "= bla bla" verront leurs formules modifiées "=(bla bla)/2"

Cordialement,
D.

john_johnk
 Posté le 09/05/2019 à 19:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Debrief,

Merci pour ta réponse. Ce que je souhaite c'est =( bla bla)/2. Je pensais qu'avec concatenate ou qqch de type RIGHT(), ou même avec rechercher remplacer. Ma plage s'étend de AE102 à AQ122 ( 13 colonnes 20 lignes) et je souhaiterais diviser par 2 toutes mes cellules

Debrief
 Posté le 10/05/2019 à 10:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu ne peux pas, par une formule dans une cellule, modifier la formule d'une autre cellule et encore moins toutes les formules d'un Range.

Tu peux à la limite, récupérer dans une cellule la formule d'une autre cellule en définissant un nom qui fait référente à "=LIRE.CELLULE(6;Feuil1!A1)" par exemple (voir ici)
Mais tu n'es pas sorti d'affaire pour autant car il faut modifier ce résultat, donc utiliser encore une autre cellule.
Puis l'affecter en tant que formule dans une autre cellule (manip complexe avec =EVALUER dans un nom) qui ne soit pas la cellule d'origine sous peine de référence circulaire.

Tu n'as qu'une option simple et rapide:

Place la macro suivante dans la partie Macro de ton classeur:
- Copier la macro ci-dessous en vert
- Dans ton classeur Excel tape (Alt + F11)
- puis clic droit / Insertion / Module puis coller.

et utilise-la:
- onglet Développeur / Macro / Exécuter

Sub FormuleDivisePar2()
Dim Cel As Range
Const RangeConcerné = "AE102:AQ122"

For Each Cel In ActiveSheet.Range(RangeConcerné)
If Cel.HasFormula Then Cel.Formula = "=(" & Mid(Cel.Formula, 2) & ")/2"
Next Cel

MsgBox "Toutes les formules ont été modifiées dans le Range " & RangeConcerné
End Sub



Modifié par Debrief le 10/05/2019 10:33
DjiDji59430
 Posté le 10/05/2019 à 12:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour à tous,

A la souris, ou presque

tu fais un tableau équivalent a ta plage AE102:AQ122 que tu remplis de 0,5.

Tu copies/colles spécial ce tableau sur la plage AE102:AQ122 en ayant coché l'option "avec multiplication"

C'est terminé


Crdlmt

Debrief
 Posté le 10/05/2019 à 14:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

La solution de DjiDji59430 est très intéressante.

On peut même la rendre encore plus simple:
- Choisis une cellule non utilisée quelque part, place dedans la valeur 2 et fais copier (Ctrl + C) de cette cellule
- Sélectionne la plage AE102:AQ122 et fait Collage spécial / Division / OK

john_johnk
 Posté le 10/05/2019 à 21:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci à vous deux, j'ai appliqué cette solution. Merci mille fois

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Diviser chaque cellule dans plage cellule par 3
Lancer macro automatiquement à chaque modif cellule
Macro pour saisir une valeur dans une plage de cellule
Référence cellule dans une plage
Excel 2007 macro rajouter tri + cellule en surbrillance à chaque changement
incrémenter un N° de cellule à chaque ouverture du fichier Excel
Incrémentation automatique d'une cellule à chaque nouvelle ligne
une seule lettre dans la cellule dans plage B:F
incrementer une cellule selon un code d'une plage
Condition sur plage de cellule en excel
Plus de sujets relatifs à Ajouter caractère à la fin de chaque cellule d''une plage de cellule
 > Tous les forums > Forum Bureautique