VBA - Modification de valeurs

Bonjour,

J'ai créer un code VBA avec une fonction "Remplacement", l'utilité est de sélectionner une cellule qui me modifieras la valeur si elle comporte un E.

Ex: dans la cellule B6 il y est écrit E0.0, en cliquant sur B8 je rentre la fonction et la cellule concernée "=Remplacement(B6)" , la cellule B8 devrait m'afficher %I0.0

Ma macro fonctionne bien mais je n'y arrive pas avec le module.

J'ai essayé en changeant l'appel dans le module Call Repleace au lieu de Call Feuil1.Repleace mais pas de changement

Programme de la Macro:

Public Sub Repleace()

ActiveCell.Replace What:="E", Replacement:="%I", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub

Programme du Module:

Public Function Remplacement(iC1 As String) As String

 Worksheets("Feuil1").Activate

 Range("F2").Value = 100

If (iC1 = "E") Then

Call Feuil1.Repleace

End If

End Function

Quand je test la fonction directement sur Excel j'ai constamment ceci: [ #VALEUR! ]

image

Merci d'avance pour votre aide,

Hello, je ne comprends pas trop l'utilité de cette macro.

Tu veux afficher dans une autre cellule une valeur EX.X contenue dans une cellule initiale en remplaçant le E par %I?

Question 1: Pourquoi ne pas le faire pour toutes les lignes/colonnes?

Question 2: Quel est le rapport avec Range("F2").Value = 100 ?

Il faudrait plus de précision quant au contexte pour comprendre le besoin.

Oui en effet,

Question 1 : Ma société est basée en France et le siège est en Allemagne, quand nous récupérons le fichier Excel des E/S nous souhaitons lui inclure une "Syntaxe" pour le récupérer en fichier Importer dans TIA Portal et comme le fichier évolue je veux le rajouter en fonction et non en ligne/colonne pour éviter de devoir réadapter la macro à chaque fois

Question 2 : C'est une valeur que j'ai mise pour voir si le module fonctionnait, voir si quelque part sa bougeait, un peu comme un mémento

Rapport à la question 1 pour le réimport, est-ce qu'il ne serait pas judicieux de remplacer tous les E en %I dans toute la feuille?

Sinon pour le code (à mettre dans un module):

Function Remplacement(iC1)

Remplacement = Replace(iC1, "E", "%I")

End Function

Ensuite dans la feuille dans la cellule cible mettre:

=Remplacement(B6)

par exemple pour passer B6 dans le format %I au lieu de E

Non, elle doit être spécifique à la sélection

J'ai ce message au niveau de la macro:

image

et celui-ci quand j'éxecute le module:

image

Il n'y a pas de modification à faire dans la macro ?

Le #nom est du au fait que les macros ne sont pas activées.

Ouvre un classeur lambda.

Va dans Visual basic et ajoute un module dans lequel tu colles le code en remplaçant Function par Public Function

Ensuite quitte la fenetre visual basic et fait fichier sauvegarder sous et enregistre ton classeur au format xlam (en laissant excel choisir le dossier de destination à ta place).

Une fois fait, quitte le classeur sans sauvegarder, rouvre un nouveau classeur.

Va dans Fichiers/Options/Compléments

Fait Atteindre et coche le classeur que tu as préalablement enregistré.

Ensuite tu peux tester la fonctionnalité

J'ai pas vu ta réponse assez rapidement mais j'ai fini par trouver

Je suis allée dans Fichier -> Options -> Centre de gestion de la confidentialité -> Paramètre du centre de gestion -> Paramètres des Macros -> j'ai cliquer sur "Activer toutes les macros"

J'ai testé et le module fonctionne

Dans visual basic j'ai mis toute la macro en commentaire et laisser le module et sa fonctionne, du coup techniquemen je peux enlever tout ce que j'ai mis dans Feuil1 et garder juste la partie Module ?

Pour des raisons de sécurité je te conseille tout de même de faire la manip avec le complément.

Ca permettra de laisser les notifications de macro activées par défaut.

Et oui tu peux tout supprimer sauf la partie Function ... End Function

J'ai fait la modif avec le complément merci

La fonction fonctionne

Merci beaucoup pour l'aide

Par contre je ne sais pas comment clore le sujet

Il faut cliquer sur le V à côté de la réponse correspondante

Merci

Rechercher des sujets similaires à "vba modification valeurs"