Macro, répéter une opération x fois

Résolu/Fermé
Philou73CH - 25 janv. 2014 à 02:01
 Philou73CH - 28 janv. 2014 à 22:50
Bonjour Bonsoir,

J'unifie 2 cellules dans une avec la macro suivante :

Sheets("TT").[A2] = Sheets("TT").[B2] & " " & Sheets("TT").[C2]

Ce qui me déplait, c'est que c'est que j'ai un nombre variable et aléatoire de ligne dans lesquelles cette formule doit être utiliser.

Je m'explique : Je pars d'un tableau comprenant tout les noms et prénoms d'une base de donnée, puis je sélectionne à l'aide d'une macro, je garde que les noms qui commence par la lettre de l'alphabet que j'ai choisi. ( Par exemple tous ceux commencant par A).

Une fois cela fait, j'ai besoin d'unifier le nom et prénom dans la collone A.
Et c'est ici que je coince. La formule ci-dessus est trop précise. Elle m'oblige à la répéter chaque fois pour chaque ligne. Et comme cette donnée est variable ......
Je cherche donc à faire une boucle qui dit que tant que B n'est pas vide, il faut unifier, et une fois que B est vide, il faut passer à la suite du programme.
Et là, je sèche, je coule, tel une m..... je m'éclate au sol :-(( Pouvez-vous m'aider ??

Merci d'avance à nouveau de votre aide qui m'a déjà été très très précieuse.

Amicalement

2 réponses

Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 37
25 janv. 2014 à 08:23
    Dim T As String, I As Integer
    T = Sheets("TT").Range("B2").Value & " " & Sheets("TT").Range("C2").Value
    While T <> ""
        Sheets("TT").Range("A" & I).Value = T
        I = I + 1
        T = Sheets("TT").Range("B" & I).Value & " " & Sheets("TT").Range("C" & I).Value
    Wend
0
Bonjour / Bonsoir Normad,

A nouveau je vous remercie d'avoir pris le temps de lire mon problème et de m'avoir proposé une solution. Hélas, cela bloc à la ligne : Sheets("TT").Range("A" & I). Value =T

J'ai fait copier collé dans ma macro. Pour éviter de faute de frappe ou d'inattention de ma part.
Peut-être cela vous indiquera quelques choses. Moi je ne peux résoudre le problème.
D'avance merci à vous.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 28/01/2014 à 21:29
Slt,

Et ça, ça fonctionne ou pas ?

En fait le code de Normad ne peut pas fonctionner tel quel ... la variable "I" n'est pas initialisée en début de boucle While et donc Range("A" & I) plante parce que la cellule A0 n'existe pas ... ensuite, il ne fait que concaténer toutes les lignes et ce même s'il n'y a rien dans les cellules ....... et sans tenir compte de l'initiale du nom !!!
0