Insertion de formules avec VBA

Bonjour

Je débute aussi en VBA et je fais des progrès réguliers. J'ai mis "au point" ce code pour convertir une liste de noms et prénoms (des centaines voir des miliers) collés ensemble de façon à les obtenir séparés dans 2 colonnes distinctes. Les instructions sont clairement indiquées dans le code. J'ai besoin d'aide pour la partie 4 comme indiquée dans le code. Ce code n'est probablement pas le plus optimal mais au moins, je m'y retrouve....et je débute en mettant les mains dans la sauce...comme on dit. J'ai fait des effort plus le rendre clair et lisible. A l'exception de la partie 4 manquante, le code fonctionne bien. Y a t-il quelqu'un qui aura du code pour cette partie manquante, tout prèt pour un besoin semblable. l'idée est de mettre des formules dans des cellules aussi longtemps qu'il y a des noms à "couper" en deux. Note: J'utilise Excel XP US; il se peut que certaines commandes n'aient pas le même nom en Français...je ne le sait pas. Je remercie chaleureusement toute personne pouvant me donner son avis, voir un coup de main sur cette question.

Sub ConversionDesNoms()

'Macro pour convertir des centaines, voir des miliers de noms au format: "Famille, Prénom" dans la colonne A

'en 2 parties soit le nom de famille sans virgule dans la colonne B

'et le prénom dans la colonne C

'La colonne A sera supprimée à la fin

'La liste des noms commence sur la rangée 2

'Partie 1

'Pour supprimer la virgule entre le nom et le prénom dans la colonne A

Columns("A:A").Select

Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

'Partie 2

'Pour insérer une colonne B et une colonne C vierges

'il y a déjà des données dans les colonnes B et C qui deviendront ensuite C et D,

'une fois que la colonne A d'origine sera supprimée (voir Partie 6 plus bas)

Range("B1").Select

Selection.EntireColumn.Insert

ActiveCell.FormulaR1C1 = "Firstname"

Range("C1").Select

Selection.EntireColumn.Insert

ActiveCell.FormulaR1C1 = "Lastname"

Range("B1").Select

Range("C1").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Selection.Font.Bold = True

Range("A1").Select

Range("C1").Select

'Partie 3

'Pour supprimer la virgule des noms dans la colonne A

Columns("A:A").Select

Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

'Partie 4

'----------Besoin d'aide ici --------------------------------------------------------------------------------------------

' les formules suivantes doivent être copiées respectivement dans les colonnes B et C

' Formule pour B : =LEFT(A2,FIND(" ",A2))

' Formule pour C : =RIGHT(A2,LEN(A2)-FIND(" ",A2))

' et ce, aussi longtemps qu'il y a des données (des noms) dans la colonne A

'Partie 5

'Pour convertir le résusltat des formules en format Paste Special - "Values" (j'ai Excel US)

Columns("B:C").Select

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'Partie 6

'Pour supprimer la colonne A et dé-selectionner le tout

Columns("A:A").Select

Application.CutCopyMode = False

Selection.Delete Shift:=xlToLeft

Range("A1").Select

End Sub

Bonjour

Une façon de faire

Edit : avec ton fichier

Impressionnant. Clair, net et précis. Je vais l'essayer sans tarder. Merci 1000 fois.

Rechercher des sujets similaires à "insertion formules vba"