Bonjour,
je souhaiterais appliquer cette formule
aux colonnes J à X
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(NBCAR(B2)="";"";SI(NBCAR(B2)=7;0&B2;TEXTE(B2;0)))
Merci d'avance
Bonjour,
je souhaiterais appliquer cette formule
aux colonnes J à X
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(NBCAR(B2)="";"";SI(NBCAR(B2)=7;0&B2;TEXTE(B2;0)))
Merci d'avance
Bonjour
Je vais te répondre de manière générale :
Une plage P ayant été déterminée, on peut attribuer une formule à toutes les cellules de cette plage ainsi :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part P.formula = "=..formule/notation anglaise...."
sans préjudice de la formule elle-même, dont tu es seul à apprécier sa justesse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part P.formulalocal = "=..formule/notation locale...."
Désolé, je n'ai pas compris ce qu'il faut faire, comment faire pour déterminer une plage ? Comment attribuer une formule à une plage ?
- On spécifie une plage par l'instruction Set (une plage étant un objet).
On la définit comme on définit toute plage ( Range(.....) )
- pour ce qui est d'attribuer une formule aux cellules d'une plage, il me semble que je t'ai déjà répondu, non ?
Il me semble également que tu cherches à mettre la charrue avant les boeufs (développer en VBA sans en avoir au moins acquis les rudiments ...). Ne compte pas sur moi pour t'encourager dans une telle voie (ce serait tout, sauf t'aider). J'observe que tu es inscrit ici depuis 2009 ...
EDIT : par acquit de conscience, je viens d'ouvrir l'aide interne de VBA et d'y lire la rubrique Range.Formula, propriété --->> tout y est dit (y compris en ce qui concerne une plage multiple). !
Tes explications m'ont permis d'avancer
Je comprends mieux ta réponse "sans préjudice de la formule elle-même" car les formules ont écrasées les données (sur une copie)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub TravailSurUnePlage() Set MaPlage = Columns("J:W") MaPlage.Formula = "=SI(NBCAR(B2)="";"";SI(NBCAR(B2)=7;0&B2;TEXTE(B2;0)))" End Sub
Un autre problème est apparu et dont je ne vois pas la solution c'est que c'est la formule qui s'affiche dans toutes les cellules des colonnes. Je connais la solution pour une seule cellule : clic doit/Format/choisir Standard/OK/F2 puis valider ....
J'ai créer une macro pour voir ce que ça fait et ça a donné ça :
ça n'a pas l'air de correspondre à /Format/choisir Standard/OK/F2 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub Macro1() ' Macro1 Macro Selection.NumberFormat = "General" ActiveCell.FormulaR1C1 = _ "=IF(LEN(RC[-8])="";"",IF(LEN(RC[-8])=7,0&RC[-8],TEXT(RC[-8],0)))" Range("J3").Select End Sub
J'ai ajouté ça au code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Columns("J:W").Select Selection.NumberFormat = "General" mais je ne vois pas la solution car F2 correspnd à ça : ActiveCell.FormulaR1C1 = _ "=IF(LEN(RC[-11])="";"",IF(LEN(RC[-11])=7,0&RC[-11],TEXT(RC[-11],0)))" Range("M3").Select
1) Cette difficulté est autre que celle objet de la discussion que tu as ouverte (attribuer une formule aux cellules de 2 colonnes) et ne concerne que la rédaction de la formule adaptée au résultat à obtenir. Elle devrait donc faire l'objet d'une discussion distincte, dans la section Excel
2) prends l'habitude :
- de montrer tes codes entre balises code (l'icône #)
- de montrer un copié/collé exact du code écrit. Ce n'est pas le cas des codes montrés (qui, tels quels, auraient forcément engendré une erreur de compilation).
Partager