Les Allergies
Alimentaires
Posez votre question Signaler

Problème en VBA : fusion de cellules [Résolu]

elise.f 10Messages postés 27 octobre 2006Date d'inscription - Dernière réponse le 2 nov. 2011 à 15:53
Bonjour!
J'ai un problème en vba : je souhaite mettre en forme le feuillet 2 à partir d'un bouton en feuillet 1, notamment fusionner des cellules entre elles. Est-ce que quelqu'un peut me dire s'il est possible de fusionner ces cellules SANS ACTIVER LE FEUILLET 2? (si je n'active pas le feuillet, je n'arrive pas à faire fonctionner la fonction Range). Merci à qui me répondra!
Elise
Sub FusionnerDesCellules(Feuillet As String, Ligne1 As Integer, LigneN As Integer, Colonne1 As Integer, ColonneN As Integer)
Application.DisplayAlerts = False
Worksheets(Feuillet).Activate
ActiveSheet.Range(Cells(Ligne1, Colonne1), Cells(LigneN, ColonneN)).MergeCells = True
Application.DisplayAlerts = True
End Sub
Lire la suite 

Problème en VBA : fusion de cellules »

6 réponses
Réponse
+6
moins plus
Salut,

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)).Merge
qui biensûr ne fonctionne pas ;-))

lami20j
elise.f- 6 nov. 2006 à 17:11
ok merci beaucoup!
Ajouter un commentaire
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
Pour info, si j'écris (au lieu d'activer, puis d'écrire Activesheet.) :

Worksheets(Feuillet).Range(Cells(Ligne1, Colonne1), Cells(LigneN, ColonneN)).MergeCells = True

ça ne marche pas! (erreur définie par l'application ou l'objet)
Bill - 4 août 2010 à 15:21
essaye avec .Cells
laure - 2 nov. 2011 à 15:53
Bonjour, j'ai le même problème, j'ai essayé avec .Cells = True mais il met des VRAI dans toutes les cases !
Ajouter un commentaire
Ce document intitulé « problème en VBA : fusion de cellules » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?