Macro problématique

Bonjour ,

je désire réaliser une simple macro qui permette d'affecter des paramètres à des cellules fusionnées "B7:F11".

--> format cellule / alignement / vertical / haut

Ensuite, j'étire ce bloc fusionné sur 4 colonnes.

Lorsque je me positionne sur un autre bloc fusionné (du même type) et que j'applique la macro, celle-ci ne fonctionne pas, voici le message d'erreur :

Erreur d'exécution '1004'
La méthode AutoFill de la classe Range a échoué.
Débogage, ...

Voici la macro :

Sub format_cellule()
'
' format_cellule Macro
' Macro enregistrée le 31/10/2008 par nexus
'
' Touche de raccourci du clavier: Ctrl+q
'
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
    Selection.AutoFill Destination:=Range("B7:F11"), Type:=xlFillDefault
    Range("B7:F11").Select
End Sub

Que faire ?

Merci à vous !

Nb : excel 2003

Bonjour

Sans rien connaître à VBA, je pressent que l'instruction

Selection.AutoFill Destination:=Range("B7:F11"), Type:=xlFillDefault 
    Range("B7:F11").Select 

Ne rend cette macro efficace que sur le bloc B7:F11.

Cordialement

oui, c'est bien là que réside le problème

Bonjour,

si j'ai bien compris.......

essaie ce code :

    Selection.AutoFill Destination:=Selection.Resize(5, 5), Type:=xlFillDefault

Nota : il faut que ta première zone fusionnée soit sélectionnée...

CA FONCTIONNE

Nb : pas besoin de sélectionner la première zone fusionnée

Merci

... une option supplémentaire (si cela est possible) :

Est-il de modifier la macro pour qu'elle puisse fonctionner même si dans une des colonnes les cellules fusionnées de sont pas de taille identique ?

OU que la macro s'applique aux seules cellules fusionnées de taille identique. Par exemple : sur 5 colonnes (ce qui est mon cas) la colonne 4 est différente, donc la macro s'applique aux 3 premières colonnes ?

Re-,

comme ceci ? :

i = ActiveCell.MergeArea.Rows.Count
Selection.AutoFill Destination:=Selection.Resize(i, 5), Type:=xlFillDefault

Edit : j'ai posté avant que tu ne précises ta demande......

Dans ce cas, un fichier exemple me semble de plus en plus nécessaire......

Tu mets ce que tu as (sans données confidentielles), et ce que tu désires

On ira plus vite, je pense

Re-,

essaie ce code (toujours, si j'ai bien compris....)

i = ActiveCell.MergeArea.Rows.Count
For j = 1 To 4
    If ActiveCell.Offset(0, j).MergeArea.Rows.Count = i Then
        k = j + 1
    Else
        If k < 2 Then Exit Sub Else Exit For
    End If
Next j
Selection.AutoFill Destination:=Selection.Resize(i, k), Type:=xlFillDefault

Voilà le fichier :

Allez dans l'onglet 'novembre', vous trouverez un exemple concret en date du 10 novembre en face de 3B et 3F

Il s'agit d'un journal de classe professeur.

Merci

felix qui tire + vite que son ombre

Vous avez posté la réponse (qui fonctionne) avant que je n'envoie le fichier

re- re- MERCI

Re-,

PS, pourquoi ne pas sélectionner Toutes les cellules (le carré gris, entre le A et le 1)

et mettre le format de la cellule en "Alignement" : Haut

Pas besoin de macro....

Juste une idée....

... tout simplement parce que je ne désire pas que toutes les cellules aient le même formatage !

Encore merci

Rechercher des sujets similaires à "macro problematique"