Macro, répéter une opération x fois
Résolu
Philou73CH
-
Philou73CH -
Philou73CH -
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
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
A voir également:
- Vba répéter une action x fois
- Site x - Guide
- Sites X : Pornhub, YouPorn et Redtube sont de nouveau accessibles en France - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Concurrent action - Guide
2 réponses
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
Bonjour,
A adapter au besoin et faire un retour pour modif éventuelles
A adapter au besoin et faire un retour pour modif éventuelles
Sub test() Dim i As Long Dim FirstChar As String Dim rep As String rep = InputBox("Entrer une lettre") rep = UCase(rep) i = 2 With Sheets("TT") While .Range("B" & i).Value <> "" FirstChar = Mid(.Range("B" & i).Value, 1, 1) If rep = FirstChar Then .Range("A" & i).Value = .Range("B" & i).Value & " " & .Range("C" & i).Value End If i = i + 1 Wend End With End Sub
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.
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 !!!