begin process at 2010 03 19 12:25:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

 > FORMATER UN PARAGRAPHE ENTRE DEUX MARGES (DROITE ET GAUCHE).

FORMATER UN PARAGRAPHE ENTRE DEUX MARGES (DROITE ET GAUCHE).


 Information sur la source

Note :
Aucune note
Catégorie :Texte Niveau :Initié Date de création :30/07/2002 Date de mise à jour :31/07/2002 17:43:51 Vu :1 856

Auteur : bigane

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

(basée sur la fonction du superbe logiciel UltraEdit)

Utilisez cette fonction pour formater un texte donné à la limite des
numéros de colonne spécifiés. Un paragraphe est déterminé par deux fins
de lignes existantes en dur dans le texte (par ex. une ligne vide).

Cette fonction demande la présence de la fonction VBA6 : Replace(), que j'ai également mis sur ce site.  

Source

  • ' ----------------------------------------------------------------------------
  • ' Description
  • ' Utilisez cette fonction pour formater un texte donné à la limite des
  • ' numéros de colonne spécifiés. Un paragraphe est déterminé par deux fins
  • ' de lignes existantes en dur dans le texte (par ex. une ligne vide).
  • '
  • ' Syntaxe
  • ' Formater_Paragraphe(Expression [, MarginRight[, MarginLeft]])
  • '
  • ' Expression
  • ' Expression de chaîne contenant des paragraphes à formater.
  • ' MarginLeft (Facultatif)
  • ' Cette option spécifie la marge de gauche qui doit être utilisée lorsque
  • ' le paragraphe est reformaté. Elle représente le premier numéro de
  • ' colonne (les numéros de colonne commencent à 1) où un texte peut
  • ' commencer. La position 1 est prise par défaut.
  • ' MarginRight (Facultatif)
  • ' Cette option spécifie la marge de droite qui doit être utilisée lorsque
  • ' le paragraphe est reformaté. Elle représente le dernier numéro de
  • ' colonne (les numéros de colonne commencent à 1) où un texte peut encore
  • ' être placé. La position 80 est prise par défaut.
  • '
  • ' Version: 1.0 - 30/07/2002
  • ' Auteur : Bigane@tiscalinet.ch
  • ' ----------------------------------------------------------------------------
  • Public Function Formater_Paragraphe( _
  • ByVal Expression As String, _
  • Optional ByVal MarginLeft As Long = 1, _
  • Optional ByVal MarginRight As Long = 80) As String
  • Dim lngLastSpace As Long
  • Dim lngNextSpace As Long
  • Dim lngLastCr As Long
  • Dim lngNextCr As Long
  • Dim lngLength As Long
  • Dim strMargin As String
  • Dim strCrLf As String
  • Dim lngLenCrLf As Long
  • Const vbSpace As String = " "
  • If (MarginLeft > 0) And (MarginRight > MarginLeft) Then
  • lngLength = MarginRight - MarginLeft + 3
  • strMargin = Space$(MarginLeft - 1)
  • strCrLf = vbSpace & vbCrLf & strMargin
  • lngLenCrLf = Len(strCrLf)
  • Expression = strMargin & LTrim$(Expression)
  • Expression = Replace(Expression, vbCrLf & vbCrLf, vbLf & vbCr)
  • Expression = Replace(Expression, vbCrLf, vbSpace)
  • Expression = Replace(Expression, vbLf & vbCr, vbCrLf & strMargin)
  • lngNextSpace = InStr(1, Expression, vbSpace)
  • If lngNextSpace Then
  • lngLastCr = 1
  • lngNextCr = InStr(1, Expression, vbCr)
  • Do
  • lngLastSpace = lngNextSpace
  • lngNextSpace = InStr(lngNextSpace + 1, Expression, vbSpace)
  • Do While (lngNextCr <> 0) And (lngNextCr < lngNextSpace)
  • lngLastCr = lngNextCr
  • lngNextCr = InStr(lngNextCr + 1, Expression, vbCr)
  • Loop
  • If lngNextSpace = 0 Then
  • lngNextSpace = lngLastSpace
  • End If
  • ' Si dépassement, insertion d'un crlf au dernier espace valide
  • If lngNextSpace - lngLastCr > lngLength Then
  • Expression = Replace(Expression, vbSpace, strCrLf, lngLastSpace, 1)
  • lngNextSpace = lngNextSpace + lngLenCrLf
  • lngLastCr = lngLastSpace + lngLenCrLf
  • End If
  • 'Poursuivre la recherche
  • lngNextCr = InStr(lngLastSpace, Expression, vbCr)
  • Loop While lngNextSpace > lngLastSpace
  • End If
  • End If
  • Formater_Paragraphe = Expression
  • End Function
' ----------------------------------------------------------------------------
' Description
'     Utilisez cette fonction pour formater un texte donné à la limite des
'     numéros de colonne spécifiés. Un paragraphe est déterminé par deux fins
'     de lignes existantes en dur dans le texte (par ex. une ligne vide).
'
' Syntaxe
'     Formater_Paragraphe(Expression [, MarginRight[, MarginLeft]])
'
' Expression
'     Expression de chaîne contenant des paragraphes à formater.
' MarginLeft (Facultatif)
'     Cette option spécifie la marge de gauche qui doit être utilisée lorsque
'     le paragraphe est reformaté. Elle représente le premier numéro de
'     colonne (les numéros de colonne commencent à 1) où un texte peut
'     commencer. La position 1 est prise par défaut.
' MarginRight (Facultatif)
'     Cette option spécifie la marge de droite qui doit être utilisée lorsque
'     le paragraphe est reformaté. Elle représente le dernier numéro de
'     colonne (les numéros de colonne commencent à 1) où un texte peut encore
'     être placé. La position 80 est prise par défaut.
'
' Version: 1.0 - 30/07/2002
' Auteur :  Bigane@tiscalinet.ch
' ----------------------------------------------------------------------------
Public Function Formater_Paragraphe( _
      ByVal Expression As String, _
      Optional ByVal MarginLeft As Long = 1, _
      Optional ByVal MarginRight As Long = 80) As String

  Dim lngLastSpace    As Long
  Dim lngNextSpace    As Long
  Dim lngLastCr       As Long
  Dim lngNextCr       As Long
  Dim lngLength       As Long
  Dim strMargin        As String
  Dim strCrLf         As String
  Dim lngLenCrLf      As Long
  
  Const vbSpace       As String = " "
  
  If (MarginLeft > 0) And (MarginRight > MarginLeft) Then
      
    lngLength = MarginRight - MarginLeft + 3
    strMargin = Space$(MarginLeft - 1)
    strCrLf = vbSpace & vbCrLf & strMargin
    lngLenCrLf = Len(strCrLf)
    Expression = strMargin & LTrim$(Expression)
    Expression = Replace(Expression, vbCrLf & vbCrLf, vbLf & vbCr)
    Expression = Replace(Expression, vbCrLf, vbSpace)
    Expression = Replace(Expression, vbLf & vbCr, vbCrLf & strMargin)
    
    lngNextSpace = InStr(1, Expression, vbSpace)
    If lngNextSpace Then
      lngLastCr = 1
      lngNextCr = InStr(1, Expression, vbCr)
      
      Do
        lngLastSpace = lngNextSpace
        lngNextSpace = InStr(lngNextSpace + 1, Expression, vbSpace)
        Do While (lngNextCr <> 0) And (lngNextCr < lngNextSpace)
          lngLastCr = lngNextCr
          lngNextCr = InStr(lngNextCr + 1, Expression, vbCr)
        Loop
        
        If lngNextSpace = 0 Then
          lngNextSpace = lngLastSpace
        End If
        
        ' Si dépassement, insertion d'un crlf au dernier espace valide
        If lngNextSpace - lngLastCr > lngLength Then
          Expression = Replace(Expression, vbSpace, strCrLf, lngLastSpace, 1)
          lngNextSpace = lngNextSpace + lngLenCrLf
          lngLastCr = lngLastSpace + lngLenCrLf
        End If
        
        'Poursuivre la recherche
        lngNextCr = InStr(lngLastSpace, Expression, vbCr)
      Loop While lngNextSpace > lngLastSpace
    
    End If
  End If
  Formater_Paragraphe = Expression

End Function
  

 Conclusion

Historiques :
30/07/2002: ajout du type de la fonction : As String


 Sources du même auteur

Source avec Zip Source avec une capture CODER DECODER FICHIER EN BASE-64 POUR TRANSMISSION EN FORMAT...
EMULATION DE LA FONCTION REPLACE() DE VBA6
Source avec Zip Source avec une capture COMMENT CRÉER UNE BASE ACCESS, CRÉER TABLE, LIRE COLONNE, EN...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CLASSE DE TRADUCTION SIMPLIFIÉE/ TRADUCTION AUTOMATIQUE D'UN... par mafieulemouton
Source avec Zip Source avec une capture AYOUBPAD2009 par ayoube2009
Source avec Zip Source avec une capture PILOTAGE D'AFFICHEURS LCD SUR PORT SÉRIE OU USB par mays
Source avec Zip Source avec une capture TRAITEMENT DE TEXTE RTF par zozo14
FORMATAGE D'UNE CELLULE EXCEL VIA UNE SYNTAXE HTML par 8Tnerolf8

Commentaires et avis

Commentaire de PROGRAMMIX le 07/11/2002 14:15:31

J'aurais aimé un ZIP et une capture...

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales