Bonjour,
Je voudrais depuis Excel écrire dans un document Word, le but étant de placer le texte de la cellule A1 sur la première ligne aligné à gauche et le texte de la cellule A2 toujours sur la première ligne mais aligné à droite (style CV NOM à gauche et Né le … ). Mon code ne fonctionne pas puisque le texte des deux cellules se retrouve collé l'un à l'autre aligné à droite. Voici mon code, si une âme charitable peut me dépêtrer, je n'arrête pas de tourner en rond, soit tout est à gauche, soit tout est à droite mais jamais ce que je veux. Merci
Private Sub CommandButton1_Click()
Dim ObjWord As Object
Dim ObjDoc As Object
Dim ObjRange As Object
Dim CheminFichier As String
' Copie la valeur des cellules A1 et A2
Dim ValeurA1 As String
ValeurA1 = ThisWorkbook.Sheets("Saisie").Range("A1").Value
Dim ValeurA2 As String
ValeurA2 = ThisWorkbook.Sheets("Saisie").Range("A2").Value
Dim ValeurA3 As String
ValeurA3 = ThisWorkbook.Sheets("Saisie").Range("A3").Value
Dim ValeurA6 As String
ValeurA6 = ThisWorkbook.Sheets("Saisie").Range("A6").Value
' Chemin du fichier Word à ouvrir
CheminFichier = "C:\Users\thier\OneDrive\Documents\excel-word\Truc_machin_vide.docx"
'Initialisation de l'objet Word
On Error Resume Next
Set ObjWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set ObjWord = CreateObject("Word.Application")
End If
On Error GoTo 0
ObjWord.Visible = True
' Ouverture du document
Set ObjDoc = ObjWord.Documents.Open(CheminFichier)
Set ObjRange = ObjDoc.Range(0, 0)
' Colle la valeur de la cellule C1 sur la première ligne, alignée à gauche
ObjRange.Collapse 0 'collapse vers le début du document
ObjRange.MoveStart , 0 'déplace la sélection vers la première ligne
ObjRange.ParagraphFormat.Alignment = 0 ' aligne à gauche
ObjRange.InsertBefore ValeurA1
' Colle la valeur de la cellule C2 sur la première ligne, alignée à droite
ObjRange.Collapse 0 'collapse vers le début du document
ObjRange.MoveEnd , 1 'déplace la sélection à la fin de la ligne
ObjRange.ParagraphFormat.Alignment = 2 ' aligne à droite
ObjRange.InsertBefore ValeurA2
' Sauvegarde et fermeture du document
ObjDoc.Save
ObjDoc.Close
' Fermeture de Word
ObjWord.Quit
' Nettoyage
Set ObjDoc = Nothing
Set ObjWord = Nothing
End Sub
Je voudrais depuis Excel écrire dans un document Word, le but étant de placer le texte de la cellule A1 sur la première ligne aligné à gauche et le texte de la cellule A2 toujours sur la première ligne mais aligné à droite (style CV NOM à gauche et Né le … ). Mon code ne fonctionne pas puisque le texte des deux cellules se retrouve collé l'un à l'autre aligné à droite. Voici mon code, si une âme charitable peut me dépêtrer, je n'arrête pas de tourner en rond, soit tout est à gauche, soit tout est à droite mais jamais ce que je veux. Merci
Private Sub CommandButton1_Click()
Dim ObjWord As Object
Dim ObjDoc As Object
Dim ObjRange As Object
Dim CheminFichier As String
' Copie la valeur des cellules A1 et A2
Dim ValeurA1 As String
ValeurA1 = ThisWorkbook.Sheets("Saisie").Range("A1").Value
Dim ValeurA2 As String
ValeurA2 = ThisWorkbook.Sheets("Saisie").Range("A2").Value
Dim ValeurA3 As String
ValeurA3 = ThisWorkbook.Sheets("Saisie").Range("A3").Value
Dim ValeurA6 As String
ValeurA6 = ThisWorkbook.Sheets("Saisie").Range("A6").Value
' Chemin du fichier Word à ouvrir
CheminFichier = "C:\Users\thier\OneDrive\Documents\excel-word\Truc_machin_vide.docx"
'Initialisation de l'objet Word
On Error Resume Next
Set ObjWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set ObjWord = CreateObject("Word.Application")
End If
On Error GoTo 0
ObjWord.Visible = True
' Ouverture du document
Set ObjDoc = ObjWord.Documents.Open(CheminFichier)
Set ObjRange = ObjDoc.Range(0, 0)
' Colle la valeur de la cellule C1 sur la première ligne, alignée à gauche
ObjRange.Collapse 0 'collapse vers le début du document
ObjRange.MoveStart , 0 'déplace la sélection vers la première ligne
ObjRange.ParagraphFormat.Alignment = 0 ' aligne à gauche
ObjRange.InsertBefore ValeurA1
' Colle la valeur de la cellule C2 sur la première ligne, alignée à droite
ObjRange.Collapse 0 'collapse vers le début du document
ObjRange.MoveEnd , 1 'déplace la sélection à la fin de la ligne
ObjRange.ParagraphFormat.Alignment = 2 ' aligne à droite
ObjRange.InsertBefore ValeurA2
' Sauvegarde et fermeture du document
ObjDoc.Save
ObjDoc.Close
' Fermeture de Word
ObjWord.Quit
' Nettoyage
Set ObjDoc = Nothing
Set ObjWord = Nothing
End Sub