Bonjour,
J'ai réalisé une macro à partir du moteur de création d'Excel 2007.
Mais j'ai quelques problèmes pour la généraliser, c'est-à-dire qu'elle puisse encore marcher quand j'ajouterai des lignes intermédiaires dans le fichier et qu'elle marche pour l'ajout d'un texte spécifique (=SI(STXT(LC(-3);1;1)=STXT(L(-1)C(-3);1;1);"";"<a name="""&STXT(LC(-3);1;1)&"""></a> <a href=""#top""><img border=""0"" src=""mc-top.gif"" alt=""légende"" title=""haut de page"" width=""11"" height=""7""></a>") qui n'est pas repris par la macro.
C'est sans doute des broutilles, mais je suis débutant.
Pour être précis, j'ai commenté le code ci-après avec les problèmes.
Le code fait une copie d'une colonne remplie de feuille 1 dans la feuille 2 puis diverses manips sur la feuille 2.
Merci d'avance pour ce petit coup de pouce.
PS: je n'ai pas précisé pour la macro "en relatif" car je n'ai pas cliqué sur cette option
J'ai réalisé une macro à partir du moteur de création d'Excel 2007.
Mais j'ai quelques problèmes pour la généraliser, c'est-à-dire qu'elle puisse encore marcher quand j'ajouterai des lignes intermédiaires dans le fichier et qu'elle marche pour l'ajout d'un texte spécifique (=SI(STXT(LC(-3);1;1)=STXT(L(-1)C(-3);1;1);"";"<a name="""&STXT(LC(-3);1;1)&"""></a> <a href=""#top""><img border=""0"" src=""mc-top.gif"" alt=""légende"" title=""haut de page"" width=""11"" height=""7""></a>") qui n'est pas repris par la macro.
C'est sans doute des broutilles, mais je suis débutant.
Pour être précis, j'ai commenté le code ci-après avec les problèmes.
Le code fait une copie d'une colonne remplie de feuille 1 dans la feuille 2 puis diverses manips sur la feuille 2.
Code:
Sub test()
'
' test Macro
'
'
Range(Selection, Selection.End(xlDown)).Select
' ici le problème est le nombre 520 qui apparaît alors que j'ai fait "fin" et que j'ajouterai des lignes remplies dans mon tableau
Range("FL1:FZ520").Select
Selection.Copy
Sheets("Feuil2").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Sheets("Feuil1").Select
Selection.Copy
Sheets("Feuil2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Feuil2").Sort
' ici le problème est le nombre 520 qui apparaît alors que j'ai fait "fin" et que j'ajouterai des lignes remplies dans mon tableau
.SetRange Range("A1:O520")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.Find(What:="| ", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
' ici le problème est le nombre 290 qui apparaît alors que j'ai fait une ligne plus haut à partir de la cellule pointée par la recherche
Range("A290").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.EntireRow.Delete
Range("F1").Select
Selection.EntireColumn.Insert
Range("F2").Select
' ici il manque le code pour écrire en F2 le texte suivant: =SI(STXT(LC(-3);1;1)=STXT(L(-1)C(-3);1;1);"";"<a name="""&STXT(LC(-3);1;1)&"""></a> <a href=""#top""><img border=""0"" src=""mc-top.gif"" alt=""légende"" title=""haut de page"" width=""11"" height=""7""></a>"
ActiveSheet.Paste
Range("E2").Select
Selection.End(xlDown).Select
' ici le problème est le nombre 230 qui apparaît alors que j'ai fait "fin" et que j'ajouterai des lignes remplies dans mon tableau
Range("F230").Select
ActiveCell.FormulaR1C1 = "x"
' ici le problème est le nombre 230 qui apparaît alors que j'ajouterai des lignes remplies dans mon tableau
Range("F230").Select
Selection.End(xlUp).Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Selection.EntireColumn.Delete
End Sub
Merci d'avance pour ce petit coup de pouce.
PS: je n'ai pas précisé pour la macro "en relatif" car je n'ai pas cliqué sur cette option
Dernière édition: