Macro VBA à compléter

Bonjour,

Je voudrais ajouter 2 éléments à ma macro :

  • la rendre applicable à partir de n'importe quelle ligne que je choisis dans la 1° page
  • lui faire rendre le résultat dans la ligne de la 2° page correspondant à la ligne choisie dans la 1° page
Sub site()
'
' site Macro
' Macro enregistrée le 21/09/2008 par conil26
'

'
    Range("A1:Q1").Select
    Selection.Copy
    Sheets("site").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("H1:I1").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1:O1").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlCenter
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("B1,F1,I1:K1").Select
    Range("I1").Activate
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With

End Sub

Mais je ne sais pas faire tout seul

Merci

Salut le forum

Un With Selection

Tu récupère la ligne a=.row

End With

Tu n'as qu'à cliquer sur ce lien : Joindre un fichier pour que l'on puisse t'aider, et recopier l'adresse sur ta ficelle.

Bonjour,

Voici le fichier.

https://www.excel-pratique.com/~files/doc/kt4SvENTRAIDE.xls

Je ne comprends pas le conseil : j’ai fait le début de la macro en « enregistrement pas à pas ». Je ne sais pas programmer en VBA.

Bonsoir,

Ta macro est mal placée dans ton fichier. Il te faut la placer dans un module.

Lorsque tu es en VBA, vas dans menu / INSERTION / MODULE puis colle le code ci-dessous :

Sub site()
'Macro par Dan pour conil26
Dim derlig As Integer, lig As Integer
derlig = Sheets("site").Range("A65536").End(xlUp).Row + 1
With Sheets("demandes")
    lig = ActiveCell.Row
    .Range("A" & lig & ":" & "G" & lig).Copy Destination:=Sheets("site").Range("A" & derlig)
    .Range("J" & lig & ":" & "Q" & lig).Copy Destination:=Sheets("site").Range("H" & derlig)
End With
End Sub
  • Dans la feuille "demandes", positionne toi sur une des cellules de la ligne à recopier dans la feuille Site.
  • Vas dans MENU / OUTILS / MACRO / MACRO
  • Sélectionne la macro SITE
  • Clique sur le bouton "exécuter"

Vois si cela te convient

Amicalement

Dan

Merci,

ça fonctionne depuis n'importe quelle ligne

Y a-t-il moyen d'en faire une macro complémentaire ? Je dois l'utiliser dans un classeur verrouillé dont je n'ai pas le code d'accès

Re,

Après vérification, il manque la partie du code qui fait la mise en forme :

 With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlCenter
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("B1,F1,I1:K1").Select
    Range("I1").Activate
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With

Mais je ne sais pas la transformer pour qu'elle s'applique à la ligne traitée, pas seulement à la ligne (A1:Q1)

Merci.

Re,

Dans mon code, rajoute ceci entre END WITH et END SUB

With Sheets("site").Range("A" & derlig & ":" & "O" & derlig)
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
End With

Amicalement

Dan

Re,

Grand merci ça fonctionne parfaitement.

C'est beau de savoir programmer, on passe d'un brouillon de 24 lignes à une fonction de 5 ligne qui fonctionne partout.

Je vais essayer de voir si ça marche dans mon fichier verrouillé...

Rechercher des sujets similaires à "macro vba completer"