Report de valeur cellule de feuille à feuille avec une formule spéciale

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonjour LE Forum,
Chers amis spécialistes de EXCEL,

Depuis une semaine de recherches je tente de bien composer une formulation de report de valeur d’une cellule dans une cellule d’une autre feuille en fonction d’un critère bien défini dans 4 formules de ma macro. En vain ! Voilà ce que c'est d'être tombé dans la marmite des macros ! (sans maquereaux, ce n'est quand même pas une cotriade...)

Je viens donc vers vous pour obtenir peut-être une piste, ou une correction efficace de mes quatre formules similaires dans cette macro.

LE PROBLÈME :
La formulation coince dans la MACRO << Private Sub CommandButton1_Click() >> placée en Objet Feuille 1 « BONJOUR ».

La formule suivante ne convient pas (et les autres similaires dans cette macro) car elle devrait donner un résultat correct dans Feuille 4 "CHIFFRAGE" :

ActiveCell.FormulaR1C1 = Cells(Feui4.[B8], Feuil4.[B8]).Value
Et la dernière :
ActiveCell.FormulaR1C1 = Cells(Feui4.[B8] + 7, Feuil4.[B8]).Value

MON OBJECTIF (lecture facultative pour ceux qui veulent toutefois plus d’explications)
Pour comprendre l’objectif à atteindre, par exemple :
- dans la feuille « Bonjour » j’ai placé le mot AZERTY,
- on y obtient par macro le mot avec son renversé collé (et ça marche, merci Le Forum !).

Ce dernier résultat est réduit théosophiquement (une lettre vaut un chiffre, l’addition de deux chiffres est ramenée entre 1 et 9, et ainsi de suite)
- l’appui sur le bouton vert « Feuille CHIFFRAGE » donne un résultat sous forme d'un triangle inversé, en chiffres et non plus en lettres
- il faut récupérer ensuite un chiffre MAITRE, en bas du triangle formé , soit LE CHIFFRE 2 pour le mot AZERTY
- il faut aussi récupérer les trois chiffres du nombre à 3 chiffres placés juste au-dessus, soit ici 9, 1 et 9 (de 919)
- et les reporter respectivement en cellules I18, G21, I21 et K21
Ouf !
Enfin , si vous changez le mot, ce sont les chiffres de la ligne 3, automatisés par formule dans le triangle inversé, qui vont composer un nouveau triangle, donc un nouveau résultat.
Exemple :
EXCEL donnera :
EXCELLECXE
Le MAITRE 4
Le MAITRE SECONDAIRE 565, donc les chiffres 5 et 6 et 5
Plus tard je transforme l’affaire en couleurs selon la feuille paramètres.
Pour information cela me sert à monter un Mandala tout en couleurs.
Une fois corrigée, l’application complète pourrait être donnée ici pour ceux qui seraient intéressés.

… mais pour cela il me faudrait aussi arriver à modifier les formules dans les cellules F3, H3 jusqu’à BW3.
Rien n’y fait si je mets EXCEL2003 par exemple...
ça coince avec des chiffres :
2 devrait donner 2,
0 devrait donner 0,
3 devrait donner 3 dans mon triangle.
Rien de bien avec NB(),
pas plus avec NVVAL().
Une lettre doit donner un chiffre,
un chiffre le même chiffre,
une cellule vide en dehors de la réduction théosophique… un vide…
vous ouvrir une autre discussion pour cela ?

Merci à ceux qui ont eu la patience de lire jusqu’ici
et merci à l'avance pour vos lumières.
Bonne soirée à vous tous
Webperegrino.
 

Pièces jointes

  • Essai.xls
    156 KB · Affichages: 79
  • Essai.xls
    156 KB · Affichages: 89
  • Essai.xls
    156 KB · Affichages: 89

Bebere

XLDnaute Barbatruc
Re : Report de valeur cellule de feuille à feuille avec une formule spéciale

bonjour Webperegrino

Private Sub CommandButton1_Click() 'Bouton d'accès à CHIFFRAGE dans Feuil "BONJOUR"
Sheets("CHIFFRAGE").Select
ActiveSheet.Unprotect
l = (Len(Range("bonjour!B4")) * 2) + 2
c = (Len(Range("bonjour!B4")) * 2) + 5
Feuil1.[I18] = Feuil1.Cells(l, c) '.Select 'la cellule où doit être reporté CM
Feuil1.[G21] = Feuil1.Cells(l - 2, c - 2) '.Select 'la cellule où doit être reporté Msa (1er chiffre du nombre à trois chiffres)
Feuil1.[I21] = Feuil1.Cells(l - 2, c) ''la cellule où doit être reporté Msb (ème chiffre du nombre à trois chiffres)
Feuil1.[K21] = Feuil1.Cells(l - 2, c + 2) 'la cellule où doit être reporté Msc (3ème chiffre du nombre à trois chiffres)
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

à bientôt
 
Dernière édition:

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Report de valeur cellule de feuille à feuille avec une formule spéciale

Bonsoir Le Forum,
Merci Bebere,
Votre correction a le mérite de ne plus faire paraître le message d'erreur, c'est déjà cela.
Il me reste maintenant à bien déteminer la bonne formule pour copier le "2" de sommet du triangle pour "AZERTY" en ligne 14 et colonne 17 vers la cellule I18 de la feuile réceptrice.
J'essaie avec
ActiveCell.FormulaR1C1 = Cells(Feuil4.[B8] + 2, Feuil4.[B8] + 5).Value
mais I18 n'affiche pas le chiffre 2
Je ne vois pas où est l'anomalie.
Bizarre.
 

Bebere

XLDnaute Barbatruc
Re : Report de valeur cellule de feuille à feuille avec une formule spéciale

bonjour Webperegrino
après j'ai remis un autre code
le voilà

Private Sub CommandButton1_Click() 'Bouton d'accès à CHIFFRAGE dans Feuil "BONJOUR"
Sheets("CHIFFRAGE").Select
ActiveSheet.Unprotect
l = (Len(Range("bonjour!B4")) * 2) + 2
c = (Len(Range("bonjour!B4")) * 2) + 5
Feuil1.[I18] = Feuil1.Cells(l, c) '.Select 'la cellule où doit être reporté CM
Feuil1.[G21] = Feuil1.Cells(l - 2, c - 2) '.Select 'la cellule où doit être reporté Msa (1er chiffre du nombre à trois chiffres)
Feuil1.[I21] = Feuil1.Cells(l - 2, c) ''la cellule où doit être reporté Msb (ème chiffre du nombre à trois chiffres)
Feuil1.[K21] = Feuil1.Cells(l - 2, c + 2) 'la cellule où doit être reporté Msc (3ème chiffre du nombre à trois chiffres)
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

à bientôt
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Report de valeur cellule de feuille à feuille avec une formule spéciale

Bonsoir Le Forum,
Bonsoir et Merci beaucoup BEBERE : la dernière proposition fonctionne à merveille !
J'ai aussi trouvé la bonne formulation pour ce qui me dérangeait (voir fin de premier message) : une lettre est reconnue, un chiffre est reconnu et un vide aussi grâce à cet exemple :
=SI(F2="";"";SI(ESTERREUR(CNUM(F2));RECHERCHEV(F2;$A$2:$B$27;2);CNUM(F2)))
CQFD et ça fonctionne parfaitement : 1 semaine pour trouver cela, en cherchant ces deux derniers jours jusqu'à 2 heures du matin, après le boulot !
Merci à vous,
Merci Le Forum,
Webperegrino
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon