Petit programme simple pour débutant VBA

Petit programme simple pour débutant VBA - VB/VBA/VBS - Programmation

Marsh Posté le 02-01-2008 à 15:16:07    

Bonjour,
 
j'ai une collonne de nombre (un nombre par cellule). Je souhaite, en appuyant sur un bouton, copier tous ces nombres dans une seule cellule, en les séparant pas des virgules.
 
Y a t'il une fonction particuliaire qui permettrait de faire ça ?
 
Merci d'avance !

Reply

Marsh Posté le 02-01-2008 à 15:16:07   

Reply

Marsh Posté le 02-01-2008 à 15:20:18    

=concatenate(A1:A255) par exemple

Reply

Marsh Posté le 02-01-2008 à 15:25:26    

Merci,
 
j'ai écris :
 
Private Sub CommandButton1_Click()
Sheets("feuil1" ).Cells(2, 2) = concatenate("A1:A10" )
End Sub
 
Mais cela ne marche pas ! je sais pas comment corriger le problème...

Reply

Marsh Posté le 02-01-2008 à 15:32:23    

Sheets("feuil1" ).Cells(2, 2).Formula = "concatenate(""A1:A10"" )"
 
(ou un truc du genre...)
utilise l'enregistreur de macro pour voir quoi mettre exactement.
 
.Value2 doit marcher aussi, et faut mettre un "=" devant la forumule, histoirede faire comprendre à excel que c'est une formule


Message édité par MagicBuzz le 02-01-2008 à 15:33:27
Reply

Marsh Posté le 02-01-2008 à 15:40:13    

Moi y en a pas yarriver ! Le truc c'est qu'il écrit texto : "concatenate("A1:A10" )" dans la cellule B2. J'ai l'impression qu'il ne pige pas la fonction "concatenate"

Reply

Marsh Posté le 02-01-2008 à 16:16:49    

1/ prends juste ta feuille excel et teste la forume "concatenate" (parcequ'en plus, si t'as un excel en français, c'est peut-être concatener() ou concatene() ou encore jyletoutcolleensemble(), c'est toujours la merde d'une version d'excel à l'autre, les noms de fonctions étant traduits...
 
2/ une foisque ça marche, utilise l'enregistreur de macro. saisi ta formule, et regarde le code qu'il t'as généré, t'aura plus qu'à faire un copier/coller du petit bout qui t'intéresse...

Reply

Marsh Posté le 02-01-2008 à 19:36:09    

Soir Bon, histoire de faire avancer le smilblic
Sous forme de Fonction Personnalisée

Option Explicit
 
Function ConCat(Rng As Range) As String
Dim c As Range
Dim sStr As String
     
    sStr = ""
    For Each c In Rng
        sStr = sStr & c
    Next c
     
    ConCat = sStr
End Function


 
Création Fonction Personnalisée
-------------------------------
Le code est à placer dans un Module standard  
[Alt+F11] Menu Insertion | Module  
 
Ensuite sous Excel  
 Sélectionner la cellule de destination  
 Menu Insertion | Fonction | Catégorie : Personnalisées  
 Sélectionner la Fonction_Désirée
 l'assistant apparait etc  
 
Sinon par exemple B1=ConCat(A1:A10)


Message édité par kiki29 le 02-01-2008 à 19:45:27
Reply

Marsh Posté le 03-01-2008 à 07:07:58    

Bonjour,
Je ne peux pas tester, mais notre ami minouchon n'aurait-il pas demandé de séparer PAR des virgules et non pas PAS des virgules!!??
Ce qui pourrait se faire en plaçant les valeurs dans une array puis en faisant un "join"  (défense de le fumer)
Cordialement

Reply

Marsh Posté le 03-01-2008 à 14:43:33    

ouais, m'enfin, en même temps...
 
1/ join() ou dérivés n'existe pas en VBA
2/ y'a 5 caractères exactement à taper en plus dans l'exemple de kiki pour ajouter la virgule en question
 
donc si entre concat() et l'exemple de kiki, l'auteur du topic s'en sort pas, vaut mieux qu'il envisage sérieusement une reconversion en tant que moine boudhiste, il a plusde chances de réussir...

Reply

Marsh Posté le 03-01-2008 à 17:54:33    

Soir Bon, Désolé MagicBuzz mais Join et Split existe en VBA sauf sur Excel 97 et inférieur

Reply

Marsh Posté le 03-01-2008 à 17:54:33   

Reply

Marsh Posté le 03-01-2008 à 19:50:23    

Split, oui, je savais, mais Join, tu m'étonnes.
Bonne nouvelle alors !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed