Problème en VBA : fusion de cellules
Résolu
elise.f
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
laure -
laure -
A voir également:
- Merge cells vba
- Mkv merge - Télécharger - Montage & Édition
- Merge mp3 - Télécharger - Audio & Musique
- Araxis merge - Télécharger - Gestion de fichiers
- Merge pdf - Télécharger - PDF
- Excel compter cellule couleur sans vba - Guide
3 réponses
Salut,
depuis la feuille a
C'est normal que tu ne réussi pas.
Pourquoi?
Puisque même si au début tu spécifies la feuille, n'est valable que pour Range, ensuite les Cells que tu utilises appartient toujours à la feuille active qui est a est pas à la feuille que tu veux qui est b.
Dans mon code j'ai utilisé With.. End With pour ne pas être obligé d'écrire
Ton code est équivalent à
lami20j
depuis la feuille a
With Sheets("b") .Range(.Cells(1, 1), .Cells(1, 3)).Merge End With
C'est normal que tu ne réussi pas.
Pourquoi?
Puisque même si au début tu spécifies la feuille, n'est valable que pour Range, ensuite les Cells que tu utilises appartient toujours à la feuille active qui est a est pas à la feuille que tu veux qui est b.
Dans mon code j'ai utilisé With.. End With pour ne pas être obligé d'écrire
Sheets("b").Range(Sheets("b").Cells(1, 1), Sheets("b").Cells(1, 3)).Merge
Ton code est équivalent à
Sheets("b").Range(Sheets("a").Cells(1, 1), Sheets("a").Cells(1, 3)).Mergequi biensûr ne fonctionne pas ;-))
lami20j
elise.f
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
1
ok merci beaucoup!
la première chose à faire c'est de mettre la reference excel
ici je suis en train de prendre mes données dans une base access en exportant ves une feuille excel qui a 3 collones D, E, F donc matricule , nom, sexe c'est aussi la structure de ma table access.
mais pour la collone F, je l'ai fusionnée avec les collonnes G, H,I,J,K pour afficher
je suis obligé de fusionner f avec g qui me donne F toujours après F avec H qui me donne tjrs F ainsi de suite
en voici l'exemple. si quelqu'un pourrai ameliorer cela sera bon
NB: j ai utilisé ado pour ma base donc il faut activer la réf ADO
'module
Public Cnx As ADODB.Connection
Public Rec As ADODB.Recordset
Public Sub OUVRIR()
Set Cnx = New ADODB.Connection
Cnx.Provider = "Microsoft.jet.oledb.4.0"
Cnx.ConnectionString = App.Path & "\bddetudiant.MDB"
Cnx.Open
End Sub
Private Sub Form_Load()
OUVRIR
Set Rec = New ADODB.Recordset
Rec.Open "select * from t_etudiant", Cnx, 1, 2
End Sub
Private Sub EXPO_Click()
Dim ligne As Integer
ligne = 8
Dim D As String, E As String, F As String, G As String, H As String, I As String, J As String, K As String, L As String
Dim xl As Excel.Application
Set xl = Nothing
Set xl = New Excel.Application
xl.Visible = True 'Pour afficher l'application excel
xl.DisplayAlerts = False
Call xl.Workbooks.Open("c:\exer13\etudiant") ' OUVRERTURE CLASSEUR
xl.Sheets("liste").Select ' Ouverture de la feuille
Rec.MoveFirst
xl.Range("I3") = Date
Do While Not Rec.EOF
'création cellules
D = "D" & ligne
E = "E" & ligne
F = "F" & ligne
G = "G" & ligne
H = "H" & ligne
I = "I" & ligne
J = "J" & ligne
K = "K" & ligne
L = "L" & ligne
xl.Range(D) = Rec.Fields(0)
xl.Range(E) = Rec.Fields(1)
' fusion de F à L
xl.Range(F, G).Merge
xl.Range(F, H).Merge
xl.Range(F, I).Merge
xl.Range(F, J).Merge
xl.Range(F, K).Merge
xl.Range(F, L).Merge
xl.Range(F) = Rec.Fields(2)
ligne = ligne + 1
Rec.MoveNext
Loop
ici je suis en train de prendre mes données dans une base access en exportant ves une feuille excel qui a 3 collones D, E, F donc matricule , nom, sexe c'est aussi la structure de ma table access.
mais pour la collone F, je l'ai fusionnée avec les collonnes G, H,I,J,K pour afficher
je suis obligé de fusionner f avec g qui me donne F toujours après F avec H qui me donne tjrs F ainsi de suite
en voici l'exemple. si quelqu'un pourrai ameliorer cela sera bon
NB: j ai utilisé ado pour ma base donc il faut activer la réf ADO
'module
Public Cnx As ADODB.Connection
Public Rec As ADODB.Recordset
Public Sub OUVRIR()
Set Cnx = New ADODB.Connection
Cnx.Provider = "Microsoft.jet.oledb.4.0"
Cnx.ConnectionString = App.Path & "\bddetudiant.MDB"
Cnx.Open
End Sub
Private Sub Form_Load()
OUVRIR
Set Rec = New ADODB.Recordset
Rec.Open "select * from t_etudiant", Cnx, 1, 2
End Sub
Private Sub EXPO_Click()
Dim ligne As Integer
ligne = 8
Dim D As String, E As String, F As String, G As String, H As String, I As String, J As String, K As String, L As String
Dim xl As Excel.Application
Set xl = Nothing
Set xl = New Excel.Application
xl.Visible = True 'Pour afficher l'application excel
xl.DisplayAlerts = False
Call xl.Workbooks.Open("c:\exer13\etudiant") ' OUVRERTURE CLASSEUR
xl.Sheets("liste").Select ' Ouverture de la feuille
Rec.MoveFirst
xl.Range("I3") = Date
Do While Not Rec.EOF
'création cellules
D = "D" & ligne
E = "E" & ligne
F = "F" & ligne
G = "G" & ligne
H = "H" & ligne
I = "I" & ligne
J = "J" & ligne
K = "K" & ligne
L = "L" & ligne
xl.Range(D) = Rec.Fields(0)
xl.Range(E) = Rec.Fields(1)
' fusion de F à L
xl.Range(F, G).Merge
xl.Range(F, H).Merge
xl.Range(F, I).Merge
xl.Range(F, J).Merge
xl.Range(F, K).Merge
xl.Range(F, L).Merge
xl.Range(F) = Rec.Fields(2)
ligne = ligne + 1
Rec.MoveNext
Loop