Nouvelles:

AGORAPUBLIX  LE forum d'échanges libres le plus réactif !
appel à Soutiens  cliquez ici svp
 

2008  -  2025 :     plus de 17 ans d'existence !  
Notre site Web : http://asso.agorapublix.com 
RAPPEL ! : un compte sans aucun message posté sera détruit ! 
Pour tout problème merci d'envoyer un message à l'adresse contact@agorapublix.com    Vous ferez de même pour toute demande sur le sujet du RGPD ou connexe. 
Assurez-vous que votre système, courriel compris, accepte les trames en provenance du domaine "agorapublix.com" 
Vous trouverez dans la rubrique "Agorapublix c'est quoi ? - Présentation et historique" les informations pour les nouveaux arrivants ainsi que la Charte d'utilisation du forum, et des Données Personnelles. Nous vous invitons à prendre connaissance de ces chartes et à veiller à leurs application.

Menu principal

Conversion d'une sélection Excel pour le forum

Démarré par hpchavaz, Juillet 17, 2017, 03:45:21 PM

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

hpchavaz

Pour ceux qui de temps à autres ont des sélections sous Excel qu'ils voudraient transférer sur le forum, voici le morceau de code que j'utilise :

Public Sub SelectionToBBCode()

    Dim sel As Range
    Dim c As Range
    Dim strOutput As String
    Dim pre As String
    Dim post As String
   
    Set sel = Application.Selection
   
    'Table begins
    strOutput = "[table]"
   
    For Each c In sel.Cells
       
        'if row begins
        If c.Column = 1 Then
            strOutput = strOutput & Chr(13) & "[tr]"
        End If
       
        pre = ""
        post = ""
       
        If IsNumeric(c) Or IsDate(c) Then
            pre = pre & "[right]"
            post = "[/right]" & post
        End If
       
        If c.Font.Bold Then
            pre = pre & "[b]"
            post = "[/b]" & post
        End If
       
        If c.Font.Italic Then
            pre = pre & "[i]"
            post = "[/i]" & post
        End If
       
        strOutput = strOutput & "[td]" & pre & c.text & post & "[/td]"
       
        'if row ends
        If c.Column = sel.Columns.Count Then
            strOutput = strOutput & "[/tr]"
        End If
    Next
    ' Table ends
    strOutput = strOutput & Chr(13) & "[/table]"
   
    ' copyToClipBoard
    Dim x As DataObject: Set x = New DataObject
    x.SetText strOutput
    x.PutInClipboard
End Sub
Disclaimer : Mes contributions ne sont pas des avis juridiques ; elles ne sont que l'avis d'un praticien.

Ponta

Merci, c'est gentil.

Pouvez-vous expliciter davantage au profane que je suis ? :)
Agoraddicted

Qui fait le malin, finit dans le ravin.
Bon, ça ne s'écrit pas avec un C.

hpchavaz

#2
Processus

on installe la macro par exemple dans le classeur personnel par défaut "personal.xlsm"
on selectionne sous excel dans le ficheir source
on lance la macro
on récupère dans le presse-papier un bbcode correspondant peu ou prou à la sélection



Exemple bbcode de



PrixQualité
Pondération
55%
45%
OffresPrixNote PrixNote QualitéNote globale
O1
100
1,00
0,00
0,55
O2
550
0,18
1,00
0,55

est le suivant :

[table]
[tr][td][right][/right][/td][td][right][/right][/td][td][b]Prix[/b][/td][td][b]Qualité[/b][/td][td][right][/right][/td][/tr]
[tr][td][right][/right][/td][td][b]Pondération[/b][/td][td][right][i]55%[/i][/right][/td][td][right][i]45%[/i][/right][/td][td][right][/right][/td][/tr]
[tr][td][b]Offres[/b][/td][td][b]Prix[/b][/td][td][b]Note Prix[/b][/td][td][b]Note Qualité[/b][/td][td][b]Note globale[/b][/td][/tr]
[tr][td][b]O1[/b][/td][td][right]100[/right][/td][td][right]1,00[/right][/td][td][right]0,00[/right][/td][td][right]0,55[/right][/td][/tr]
[tr][td][b]O2[/b][/td][td][right]550[/right][/td][td][right]0,18[/right][/td][td][right]1,00[/right][/td][td][right]0,55[/right][/td][/tr]
[/table]
Disclaimer : Mes contributions ne sont pas des avis juridiques ; elles ne sont que l'avis d'un praticien.