stephsteph
XLDnaute Occasionnel
Bonjour le forum,
J'ai réalisé une petite macro assez simple qui marche (oui!).
Seulement voilà, mon fichier évolue j'ajoute des lignes et si je n'actualise pas le nombre total de lignes, la macro en oublie, elle marche mais cela devient faux.
En pratique, voici le bout de code avec le nombre total de lignes -1502- codé automatiquement (cela vient de la sélection des cellules A à F de 1 à tout en bas précédente) :
Si j'ajoute 3 lignes et que je ne remplace pas 1502 par 1505, c'est là que cela pert en vrille.
J'ai essayé de mettre seulement A1:F ou A:F, mais là çà bugge carrément.
Cela devrait être simple pour m'éviter de penser à actualiser le nombre de lignes. Mais je sèche.
Et la petite question, sur un autre macro qui marche et que j'adapte, j'ai la ligne de code suivante qui marche:
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & tablo(n, 240) & "</b> [e= edition, t = texte, l= localite, m= milieu, p= place]</p>"
Je voudrais supprimer dans le texte tout ce qui est espace(lettre variable entre parenthèses) par rien
Par exemple dans mon n, 240, j'ai NomA (e), NomB (m), NomC (p)...
Actuellement j'obtiens <p>CONTRIBUTEUR(S)… <b>NomA (e), NomB (m), NomC (p)</b> [e= edition, t = texte, l= localite, m= milieu, p= place]</p>
Je voudrais obtenir <p>CONTRIBUTEUR(S)… <b>NomA, NomB, NomC</b></p>
En fonction Excel c'est facile en utilisant le caractère * (étoile), mais en VBA je cale, j'ai essayé les codes suivants d'après des exemples sur Internet, mais la macro ne tient pas compte de cette wild card
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & Replace(tablo(n, 240), " (*)", "") & "</b></p>"
tabres(L) = "<p>CONTRIBUTEURS)… <b>" & Replace(tablo(n, 240), " (" & * & ")", "") & "</b></p>"
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & Replace(tablo(n, 240), " (~*)", "") & "</b></p>"
Merci de votre aide
A+, Steph
J'ai réalisé une petite macro assez simple qui marche (oui!).
Seulement voilà, mon fichier évolue j'ajoute des lignes et si je n'actualise pas le nombre total de lignes, la macro en oublie, elle marche mais cela devient faux.
En pratique, voici le bout de code avec le nombre total de lignes -1502- codé automatiquement (cela vient de la sélection des cellules A à F de 1 à tout en bas précédente) :
Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, -5).Range("A1:F1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 1), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 2), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
' .SetRange ActiveCell.Range("A1:F1502")
.SetRange ActiveCell.Range("A:F")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Si j'ajoute 3 lignes et que je ne remplace pas 1502 par 1505, c'est là que cela pert en vrille.
J'ai essayé de mettre seulement A1:F ou A:F, mais là çà bugge carrément.
Cela devrait être simple pour m'éviter de penser à actualiser le nombre de lignes. Mais je sèche.
Et la petite question, sur un autre macro qui marche et que j'adapte, j'ai la ligne de code suivante qui marche:
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & tablo(n, 240) & "</b> [e= edition, t = texte, l= localite, m= milieu, p= place]</p>"
Je voudrais supprimer dans le texte tout ce qui est espace(lettre variable entre parenthèses) par rien
Par exemple dans mon n, 240, j'ai NomA (e), NomB (m), NomC (p)...
Actuellement j'obtiens <p>CONTRIBUTEUR(S)… <b>NomA (e), NomB (m), NomC (p)</b> [e= edition, t = texte, l= localite, m= milieu, p= place]</p>
Je voudrais obtenir <p>CONTRIBUTEUR(S)… <b>NomA, NomB, NomC</b></p>
En fonction Excel c'est facile en utilisant le caractère * (étoile), mais en VBA je cale, j'ai essayé les codes suivants d'après des exemples sur Internet, mais la macro ne tient pas compte de cette wild card
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & Replace(tablo(n, 240), " (*)", "") & "</b></p>"
tabres(L) = "<p>CONTRIBUTEURS)… <b>" & Replace(tablo(n, 240), " (" & * & ")", "") & "</b></p>"
tabres(L) = "<p>CONTRIBUTEUR(S)… <b>" & Replace(tablo(n, 240), " (~*)", "") & "</b></p>"
Merci de votre aide
A+, Steph