macro mise en forme automatique

Pour toutes vos questions à propos d'Excel ...

macro mise en forme automatique

Messagepar Meknès » 06 Sep 2010, 23:39

Bonjour, je cherche une nouvelle macro pour un tableau.
Le but:
dans un tableau borné par une ligne de "fin" ( elle me sert dans des formules ou je compte les champs vides pour la colonne G !), j'insère des nouvelles lignes avec une macro entre la dernière saisie et la ligne "fin".
Depuis une application (j'extrais des données), je viens coller des infos "brutes", la première colonne est vide.
Je désire lancer une macro qui, pour chaque cellule vide de la colonne A, me copie des formules dans plusieurs colonnes de mon choix sur la première ligne ou A est vide puis copie la mise en forme de la ligne précedente.
Pour finir, je veux répeter l'opèration jusqu'à la ligne "fin".
Merci à vous

-- 07 Sep 2010, 00:03 --

Ceci fonctionne pour la ligne 960, mais je voudrais génèralisé
le code:


Private Sub forme_click()
For Each Row In Selection
ActiveWindow.SmallScroll Down:=-264
Range("A941").Select
Selection.Copy
Range("A960").Select
ActiveSheet.Paste
Range("B941").Select
Application.CutCopyMode = False
Selection.Copy
Range("B960").Select
ActiveSheet.Paste
Range("K2").Select
Application.CutCopyMode = False
Selection.Copy
Range("L960").Select
ActiveSheet.Paste
Range("P929").Select
Application.CutCopyMode = False
Selection.Copy
Range("P960").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=6
Range("X929").Select
Application.CutCopyMode = False
Selection.Copy
Range("X960").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Rows("930:930").Select
Application.CutCopyMode = False
Selection.Copy
Rows("960:960").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Next
End Sub

et ceci fonctionne pour la selection de la cellule vide:

Range("A959").Select

While ActiveCell.Value <> Empty
LigneActive = ActiveCell.Row
If Cells(LigneActive, 1).Value = "" Then
Meknès
Nouveau venu
 
Messages: 5
Inscription: 29 Août 2010, 10:18
Version Excel: 2003

Re: macro mise en forme automatique

Messagepar Meknès » 08 Sep 2010, 18:43

j'ai un résultat satisfaisant avec cet deux macro :
1)
Private Sub insertion_ligne_click()


Range("fin").Select

ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

ActiveCell.Offset(-1, 0).Select
ActiveCell.EntireRow.Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, 2).ClearContents
ActiveCell.Offset(0, 3).ClearContents
ActiveCell.Offset(0, 4).ClearContents
ActiveCell.Offset(0, 5).ClearContents
ActiveCell.Offset(0, 7).ClearContents
ActiveCell.Offset(0, 8).ClearContents
ActiveCell.Offset(0, 9).ClearContents
ActiveCell.Offset(0, 12).ClearContents

End Sub



2) je colle les infos désirées

3)
Private Sub format_Click()

Dim CelluleDest As Range
Dim PlageSource As Range
Set PlageSource = Rows("17")
Set CelluleDest = Application.InputBox _
("Sélectionnez la ou les lignes !", "ligne destination", Type:=8)
PlageSource.Copy
With CelluleDest
Sheets(.Parent.Name).Select
Range(.Address).Select
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
End With
Application.CutCopyMode = False

End Sub

C'est pas le top, mais cela convient :)
Merci à tous
Meknès
Nouveau venu
 
Messages: 5
Inscription: 29 Août 2010, 10:18
Version Excel: 2003


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot], MITCH60 et 8 invités