Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

insérer un nom par vba

E

eric f

Guest
Bonjour
Dans une feuille excel des utilisateurs saisissent en colonne le prénom et nom d'employés. Ex en a1 Jean Passe en b1 Marc Tapage etc.
Je voudrais utiliser un user form qui reprend la liste des prénoms noms saisis et faire ajouter à l'utilisateur une valeur. Ca ça va.
Ensuite je voudrais insérer un nom (équivalent à insertion nom définir dans excel) qui serait prénom nom et faisant référence à la valeur saisie.
Le problème c'est l'espace entre prénom et nom qu'il faudrait soit enlever soit remplacer par _ avec le code.
Merci de m'aider à ce sujet
 
@

@+Thierry

Guest
Salut Eric,

Pour l'espace, par de difficulté avec la fonction Replace.
Pour le add name, j'ai juste utilisé l'enregistreur de macro puis allégé le code en y introduisant les variables... (Jamais nommé des cellules depuis VBA j'ai découvert !)

Enfin çà donne çà ...

Sub EricF()
MyVar = ActiveCell.Address
MyString = ActiveCell.Text
MyNewString = Replace(MyString, " ", "_")
MsgBox MyNewString
ActiveWorkbook.Names.Add MyNewString, MyVar
End Sub

En espérant que çà te sera utile en remplaçant les variables par les données de ton UserForm...

Bon Appétit
@+Thierry
 
E

eric f

Guest
Merci pour la réponse

j'ai cependant du mal a l'appliquer

j'ai un message d'erreur sur replace :"erreur de compilation sub ou funtion non définie)

j'ai essayé en ajoutant Application.WorksheetFunction devant et là j'ai "erreur de compilation argument non facultatif" sur replace

Help !
 
E

eric f

Guest
j'y suis parvenu en utilisant une cellule du tableau


mystring = Me.cbxAgents
Range("a500") = mystring
mynewstring = Range("a500").Replace(What:=" ", Replacement:="_")
 
@

@+Thierry

Guest
Re Salut Eric

Humm si tu as encore un problème post le code complet car "cbxAgents" çà ne me dit rien ? c'est quoi un activeX ? le nom d'un contrôle ?

Pour ce qui est de
Range("a500") = mystring
mynewstring = Range("a500").Replace(What:=" ", Replacement:="_")

Dans le code initial (testé sans erreur) J'avais évité d'écrire sur une cellule la variable temporaire... et de permettre de nommer la cellule sans être "bloqué" en range("A500") comme tu fais maintenant...

Et de toutes les manières tu peux supprimer le "trash code" d'enregistrement de macro qui sont What:= & Replacement:= car la fonction replace n'en a pas besoin.
Syntax Replace(expression, find, replace [, start[, count[, compare]]])
Donc Replace (mystring," ", "_") suffit amplement.

Test ma macro du dessus telle qu'elle sur un classeur vierge et tape n'importe où dans une cellule "Toto Titi", selectionne cette cellule puis lance la macro et dis moi si tu as un problème ou non ?

Bon Week End
@+Thierry
 

Discussions similaires

Réponses
7
Affichages
737
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…