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

Problème avec la fonction REPT en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

Dans une cellule, par ex. "A1", j'ai un texte, supposons "zaza".
Je voudrais faire précéder "zaza" d'un certain nombre d'espaces vides (" "), supposons 5.

J'écris ceci :
[A1].value=REPT(" ",5) & "zaza"

Ça ne marche pas !

Un grand merci pour m'expliquer pourquoi.
 
Re : Problème avec la fonction REPT en VBA

Bonsoir Magic_doctor, le forum,

Si c'est en VBA, il faut écrire:

Code:
ActiveCell.Formula = "=REPT("" "",5) & ""ZAZA"""

Si c'est dans la feuille Excel:

Code:
=REPT(" ";5) & "ZAZA"
avec un ";"

@+

Gael
 
Re : Problème avec la fonction REPT en VBA

Bonsoir Gael,

C'est curieux, mais je n'y arrive pas...

Le problème est pourtant simple.
Si sur la feuille je veux que dans la cellule A1 il y ait : *****ZAZA
dans la barre de formules j'écris :
=REPT("*";5) & "ZAZA"

Ça marche sans problème !

Comment diable traduit-on ceci en VBA, sans passer par de mystérieux objets dont on n'a que faire, puisqu'ici il s'agit uniquement d'une cellule ?
Il est quand même bizarre que les génies de chez Microsoft n'aient pas trouvé un truc simple du genre :
[A1].value = Rept("*",5) & "ZAZA"

Mais il est vrai que la simplicité et VBA ne font pas toujours bon ménage...
 
Re : Problème avec la fonction REPT en VBA

Bonsoir Hasco, merci pour ton intervention.

J'ai essayé, j'ai bien écrit :

[A1].Value = String(5, "*") & "ZAZA"

Message d'erreur : ERREUR 424 qui me réclame encore et toujours un OBJET !

On croit rêver... un truc aussi simple...
 
Re : Problème avec la fonction REPT en VBA

salut
Pour utiliser une fonction déjà définie :
Code:
[A1].Value =[B] Application.WorksheetFunction.Rept(" ", 5)[/B] & "ZAZA"
 
Re : Problème avec la fonction REPT en VBA

La solution de Hasco enfin marche.

Que s'était-il donc passé ?

La cellule où je devais récupérer la fameuse valeur est en fait O115 (et non A1, comme dans l'exemple).
J'avais écrit 0115 (zéro115 !!!!!). Effectivement, ça aurait pu encore durer un bon moment...

Faites donc gaffe avec O et 0 !!! C'est con, mais ça peut arriver à tout le monde !

Bonne soirée à tous.
 
Re : Problème avec la fonction REPT en VBA

"Mais il est vrai que la simplicité et VBA ne font pas toujours bon ménage..."

Si ce n'était pas les cas, il n'y aurait pas besoin de forum à ce sujet, car tout se résoudrait avec une merveilleuse simplicité.
Un forum consacré au "morpion" n'aurait que très peu de sens...
D'autre part, ne trainent pas sur ce forum que des caïds de VBA, loin s'en faut !
L'on attend d'un forum des réponses, non des réflexions.
Mais si j'ai insulté VBA, veuillez, cher ami m'en excuser !

¡Mucho vocabulario para una conclusión hueca!
 
Re : Problème avec la fonction REPT en VBA

...
J'écris ceci :
[A1].value=REPT(" ",5) & "zaza"

Ça ne marche pas !

Un grand merci pour m'expliquer pourquoi.

...
L'on attend d'un forum des réponses, non des réflexions.
...
Il me semble que j’ai répondu on ne peut plus exactement à cette demande !


La seule chose qui me parait essentielle est d’expliquer, non pas à une personne, mais aux utilisateurs inexpérimentés d’EXCEL, la différence entre une Formule et son utilisation en VBA (sans prendre partie pour l'une ou pour l'autre).

N’ayant pas ton sujet sous les yeux, j’ai évité de proposer une solution des plus simplistes,
Code:
[A1].value= «      Zaza »

A noter qu’il y a toujours « Open Office » pour ceux qui pensent que les génies de chez Microsoft ne sont pas à la hauteur et compliquent les choses à souhait.
Peut-être ai-je tort, mais je n’accepte les critiques que si elles sont constructives et c'est Ma Conclusion !
 
Re : Problème avec la fonction REPT en VBA

Pour conclure définitivement ce sujet.

1/ la solution de Hasco fonctionnait très bien
2/ si elle ne marchait pas, c’est que tout simplement je m’étais planté par étourderie en mettant 0 au lieu de O… Il y a plein de choses comme ça qui arrivent dans la vie...
3/ la solution de Hasco m’a mis sur la voie pour trouver, grâce à l’aide d’Excel, une fonction (que je ne connaissais pas) encore plus appropriée, puisque je désirais uniquement des espaces avant la chaîne :

[A1].value = Space (5) & "ZAZA"

Je pense que cette solution sera on ne peut plus constructive tant dans sa simplicité intrinsèque que dans sa "laconicité" sémantique (puisque vous appréciez les termes redondants) !

Et voili voilou !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
929
Réponses
10
Affichages
1 K
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…