Formule dans VBA ?
Résolu/Fermé
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
-
20 févr. 2017 à 11:50
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 21 févr. 2017 à 16:57
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 21 févr. 2017 à 16:57
A voir également:
- Formule dans VBA ?
- Formule excel - Guide
- Erreur 1004 vba ✓ - Forum VB / VBA
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Formule de politesse mail anglais - Guide
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
3 réponses
HugoHerbomez
Messages postés
57
Date d'inscription
dimanche 15 juillet 2012
Statut
Membre
Dernière intervention
2 mars 2017
2
Modifié par HugoHerbomez le 20/02/2017 à 13:29
Modifié par HugoHerbomez le 20/02/2017 à 13:29
Bonjour Villette,
Tu sais comment utiliser du code VBA? Sinon tu peux essayer ça :
Après il faut que tu me décrives un peu plus comment tu veux faire. Avec ça tu pourras faire un petit truc je pense :p
La personne n'aura le droit que à un seul essai, après la formule reviendra.
(je pourrai t'améliorer un peu le code si tu veux, sur le même principe)
Bien cordialement,
Hugo
Tu sais comment utiliser du code VBA? Sinon tu peux essayer ça :
Private formule As String
'Il faut remplacer i et j avec tes valeurs
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = i And Target.Column = j Then
formule = Cells(i,j).Formula
Cells(i,j).Clear
Else
If Cells(i,j) = "" Then
Cells(i,j) = "Autre, précisez"
End If
'Le problème avec ça c'est que l'opération se fera souvent, je vois pas comment faire autrement
Cells(i,j).Formula = formule
End If
Après il faut que tu me décrives un peu plus comment tu veux faire. Avec ça tu pourras faire un petit truc je pense :p
La personne n'aura le droit que à un seul essai, après la formule reviendra.
(je pourrai t'améliorer un peu le code si tu veux, sur le même principe)
Bien cordialement,
Hugo
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mars 2023
3 291
Modifié par michel_m le 21/02/2017 à 08:47
Modifié par michel_m le 21/02/2017 à 08:47
Bonjour Vilette
En VBA, on n'utilise généralement pas des copies de formules pour inscrire des valeurs en résultat
la procédure ci dessous se déclenche lorsqu'on entre une valeur en colonne A de la feuille "report". Une mauvaise saisie est signalée (par ex: 6 ou toto...)
j'ai mis une zone d'action jusqu'à la ligne 10000 mais à toi d'adapter à ton classeur réel
Procédure à installer dans le module feuille "report" et non dans un module standard

Michel
En VBA, on n'utilise généralement pas des copies de formules pour inscrire des valeurs en résultat
la procédure ci dessous se déclenche lorsqu'on entre une valeur en colonne A de la feuille "report". Une mauvaise saisie est signalée (par ex: 6 ou toto...)
Option Explicit
'------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Texto As String
'zone d'action procédure
If Not Intersect(Target, Range("A2:A10000")) Is Nothing Then
With Sheets("Data")
On Error GoTo inconnu 'détection saisie erronée
'description donnée feuille data
Texto = .Columns("A").Find(Target, .Range("A1"), xlValues).Offset(0, 1)
End With
'report description feuille "report"
Target.Offset(0, 1) = Texto
End If
Exit Sub
'gestionnaire erreurs
inconnu:
MsgBox "la valeur saisie, " & Target & ", est erronée.", vbCritical
End Sub
j'ai mis une zone d'action jusqu'à la ligne 10000 mais à toi d'adapter à ton classeur réel
Procédure à installer dans le module feuille "report" et non dans un module standard

Michel
Villette54
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
28
21 févr. 2017 à 16:57
21 févr. 2017 à 16:57
Bonjour,
Merci à tous les deux pour vos réponses.
Je test ça au plus vite et je reviendrais pour vous tenir au courant (et enventuellement, encore demander de l'aide).
Encore merci.
Bonne fin de journée,
Merci à tous les deux pour vos réponses.
Je test ça au plus vite et je reviendrais pour vous tenir au courant (et enventuellement, encore demander de l'aide).
Encore merci.
Bonne fin de journée,