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: