1 884
modifications
Modifications
→Macro VBA (suite) - Notepad++ : section coupée en 2 pour obtenir une meilleure lisibilité, car certains messages sont longs (ou hauts) et le décalage vers la droite pour cause d'indentation est important
::::::::(Pb de réception des messags yahoo en ce moment. suis sur le forum en direct.
::::::::Sandy - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 19:00
::::Voilà la modif :
::::Sub xls_to_wgw()
::::<br />
:::: On Error Resume Next
:::: TC = WorksheetFunction.CountA(Columns(1))
:::: NC = TC - 1
:::: TR = WorksheetFunction.CountA(Rows(1))
:::: NR = TR - 1
:::: nom = ActiveSheet.Name
:::: Sheets("xls_to_wgw").Select
:::: ActiveWindow.SelectedSheets.Delete
:::: Sheets(nom).Select
:::: ActiveSheet.Copy After:=ActiveSheet
:::: ActiveSheet.Name = "xls_to_wgw"
:::: Sheets("xls_to_wgw").Select
:::: <br />
:::: Columns("A:A").Select
:::: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
:::: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
:::: Rows("1:1").Select
:::: Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
:::: <br />
:::: Range("A2").Select
:::: ActiveCell.FormulaR1C1 = "1"
:::: Range("A3").Select
:::: ActiveCell.FormulaR1C1 = "2"
:::: Range("A2:A3").Select
:::: Selection.AutoFill Destination:=Range("A2:A" & TC + 1), Type:=xlFillDefault
:::: Range("A2:A" & NC).Select
::::<br />
:::: Range("A1").Select
:::: ActiveCell.FormulaR1C1 = "<!-- (L "
:::: Range("B1").Select
:::: ActiveCell.FormulaR1C1 = ") -->"
:::: Range("C1").Select
:::: ActiveCell.FormulaR1C1 = "|-"
:::: Range("D1").Select
:::: ActiveCell.FormulaR1C1 = "|"
:::: Range("E1").Select
:::: ActiveCell.FormulaR1C1 = "||"
:::: Range("I1").Select
:::: ActiveCell.FormulaR1C1 = "{|"
:::: Range("B2").Select
:::: Columns("B:B").ColumnWidth = 120
:::: Range("B2").Select
:::: ActiveCell.FormulaR1C1 = _
:::: "=CONCATENATE({{coloré|red|R1C1,RC[-1],R1C2}},R1C3,R1C4,RC[1],R1C5,RC[2],R1C5,RC[3],R1C5,RC[4],R1C5,RC[5],R1C5,RC[6],R1C5,RC[7],R1C5,RC[8],R1C5,RC[9])"
::::<br />
:::: Selection.AutoFill Destination:=Range("B2:B" & TC + 1), Type:=xlFillDefault
:::: Cells.Select
:::: Cells.EntireRow.AutoFit
:::: <br />
:::: Set fs = CreateObject("Scripting.FileSystemObject")
:::: Set a = fs.CreateTextFile("c:\excel-to-mediawiki.txt", True)
:::: a.WriteLine ("{| class=wikitable")
:::: Range("B2:B" & NC).Select
:::: For Each cell In Selection
:::: texte = Replace(cell.Value, "|-", {{coloré|red|vbCrLf & }}"|-"{{coloré|red| & vbCrLf}})
:::: a.WriteLine (texte)
:::: Next cell
:::: a.WriteLine ("|}")
:::: a.Close
:::: <br />
:::: Range("B2").Select
:::: Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(NC, 0)).Select
:::: <br />
::::End Sub
::::<br />
::::Cordialement,
::::Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 14:46
:::::Si un tableau fait 3000 lignes on fait quoi ???????
:::::l'éditeur mediawiki n'affiche que 25 lignes à la fois.
:::::Raymond
:::::<br />
:::::Restriction: toutes les lignes de la colonne A doivent être remplies sinon le comptage des lignes est faux et ça peut poser un problème
:::::Raymond - [[Utilisateur:Raymond SÉNÈQUE|Raymond SÉNÈQUE]] - Jeudi 24 Février 2011 14:58
::::::Je suis obligé de partir 1 heure.
::::::A tout'
::::::Cordialement,
::::::Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 15:01
:* « ''Il faut en fait que le résultat de la concaténation se termine par la donnée de la dernière cellule de droite, sans le double pipe.'' »
:En fait pour l'instant ça traite correctement un tableau de 9 colonnes. Je viens d'essayer.
:A ce moment-là, il n'y a effectivement pas de || en fin de ligne :-)
:Cordialement,
:Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 14:30
::je suis sur les colonnes mais ce n'est pas aussi simple.
::le fichier .txt permet de conserver le tableau, bonne idée non ?
::rayumond - [[Utilisateur:Raymond SÉNÈQUE|Raymond SÉNÈQUE]] - Jeudi 24 Février 2011 14:32
== Macro VBA (suite) - MsgBox ==
:::::::::Pour le tableau à n colonnes, il faudrait ajouter un MsgBox demandant le cliquer sur la dernière colonne de droite à récupérer en colonneDroite$
:::::::::Puis faire une boucle pour définir concaténer
::::::::::::::::::::::::Avec rien à la place du {{coloré|red|(???)}}
::::::::::::::::::::::::Cordialement,
::::::::::::::::::::::::Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Vendredi 25 Février 2011 13:04 ::::Voilà la modif :::::Sub xls_to_wgw()::::<br />:::: On Error Resume Next:::: TC = WorksheetFunction.CountA(Columns(1)):::: NC = TC - 1:::: TR = WorksheetFunction.CountA(Rows(1)):::: NR = TR - 1:::: nom = ActiveSheet.Name:::: Sheets("xls_to_wgw").Select:::: ActiveWindow.SelectedSheets.Delete:::: Sheets(nom).Select:::: ActiveSheet.Copy After:=ActiveSheet:::: ActiveSheet.Name = "xls_to_wgw":::: Sheets("xls_to_wgw").Select:::: <br />:::: Columns("A:A").Select:::: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove:::: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove:::: Rows("1:1").Select:::: Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove:::: <br />:::: Range("A2").Select:::: ActiveCell.FormulaR1C1 = "1":::: Range("A3").Select:::: ActiveCell.FormulaR1C1 = "2":::: Range("A2:A3").Select:::: Selection.AutoFill Destination:=Range("A2:A" & TC + 1), Type:=xlFillDefault:::: Range("A2:A" & NC).Select::::<br />:::: Range("A1").Select:::: ActiveCell.FormulaR1C1 = "<!-- (L ":::: Range("B1").Select:::: ActiveCell.FormulaR1C1 = ") -->":::: Range("C1").Select:::: ActiveCell.FormulaR1C1 = "|-":::: Range("D1").Select:::: ActiveCell.FormulaR1C1 = "|":::: Range("E1").Select:::: ActiveCell.FormulaR1C1 = "||":::: Range("I1").Select:::: ActiveCell.FormulaR1C1 = "{|":::: Range("B2").Select:::: Columns("B:B").ColumnWidth = 120:::: Range("B2").Select:::: ActiveCell.FormulaR1C1 = _:::: "=CONCATENATE({{coloré|red|R1C1,RC[-1],R1C2}},R1C3,R1C4,RC[1],R1C5,RC[2],R1C5,RC[3],R1C5,RC[4],R1C5,RC[5],R1C5,RC[6],R1C5,RC[7],R1C5,RC[8],R1C5,RC[9])"::::<br /> :::: Selection.AutoFill Destination:=Range("B2:B" & TC + 1), Type:=xlFillDefault:::: Cells.Select:::: Cells.EntireRow.AutoFit:::: <br />:::: Set fs = CreateObject("Scripting.FileSystemObject"):::: Set a = fs.CreateTextFile("c:\excel-to-mediawiki.txt", True):::: a.WriteLine ("{| class=wikitable"):::: Range("B2:B" & NC).Select:::: For Each cell In Selection:::: texte = Replace(cell.Value, "|-", {{coloré|red|vbCrLf & }}"|-"{{coloré|red| & vbCrLf}}):::: a.WriteLine (texte):::: Next cell:::: a.WriteLine ("|}"):::: a.Close:::: <br />:::: Range("B2").Select:::: Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(NC, 0)).Select:::: <br />::::End Sub::::<br />::::Cordialement,::::Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 14:46 :::::Si un tableau fait 3000 lignes on fait quoi ???????:::::l'éditeur mediawiki n'affiche que 25 lignes à la fois.:::::Raymond:::::<br />:::::Restriction: toutes les lignes de la colonne A doivent être remplies sinon le comptage des lignes est faux et ça peut poser un problème:::::Raymond - [[Utilisateur:Raymond SÉNÈQUE|Raymond SÉNÈQUE]] - Jeudi 24 Février 2011 14:58 ::::::Je suis obligé de partir 1 heure.::::::A tout'::::::Cordialement,::::::Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 15:01 :* « ''Il faut en fait que le résultat de la concaténation se termine par la donnée de la dernière cellule de droite, sans le double pipe.'' »:En fait pour l'instant ça traite correctement un tableau de 9 colonnes. Je viens d'essayer.:A ce moment-là, il n'y a effectivement pas de || en fin de ligne :-) :Cordialement,:Sandy-Pascal Andriant - [[Utilisateur:Conil26|Conil26]] - Jeudi 24 Février 2011 14:30::je suis sur les colonnes mais ce n'est pas aussi simple.::le fichier .txt permet de conserver le tableau, bonne idée non ?::rayumond - [[Utilisateur:Raymond SÉNÈQUE|Raymond SÉNÈQUE]] - Jeudi 24 Février 2011 14:32
== Renommer une page ==