IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Supprimer des lignes vides


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut Supprimer des lignes vides
    j'aimerais supprimer des lignes vides ci-dessous
    on m'a proposer çà mais ca ne marche pas dans tous les cas , surtout la dernière ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function supp_lignes_vides($string)
    {
       return trim(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $string));
    }
    avez vous d'autres propositions plus génériques ?
    merci d'avance

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    J’adore les regex, mais c’est comme le chocolat il ne faut pas en abuser.

    Si le fins de ligne sont ’\n’ il suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = str_replace("\n\n",'\n',$str);


    PS
    S’il y a des blancs ou des tabulations dans la ligne “vide“, ça ne suffit pas

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par eyquem Voir le message
    J’adore les regex, mais c’est comme le chocolat il ne faut pas en abuser.

    Si le fins de ligne sont ’\n’ il suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = str_replace("\n\n",'\n',$str);


    PS
    S’il y a des blancs ou des tabulations dans la ligne “vide“, ça ne suffit pas
    on fait comment s'il y a des blancs ou des tabulations dans la ligne “vide“ ?

  4. #4
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $str = str_replace("\t",'',$str);

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Parfois, c'est bon le chocolat...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r(preg_replace('/\s+/s', "\n", $str));
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci .j'ai ajouté çà selon vos conseils
    $string=str_replace("\n\n"|,'\n',$string); $string=str_replace("\t",'',$string);
    par contre je comprends pas le code suivant .pour moi ca va supprimer tous les espaces .s'il y a un mot "la tarte" ca va donner "latarte".
    print_r(preg_replace('/\s+/s', "\n", $str));

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bon, il faut que je réintervienne puisque j’ai écrit quelque chose qui est source de confusion et de mésinterprétation.



    À la lecture de la question, j’ai interprété les termes «lignes vides» comme désignant des lignes apparaissant blanches à l’affichage par le fait d’être codées par un seul ’\n’ dans le code. J’ai d’ailleurs vérifié en sélectionnant le texte que tu as placé en exemple dans le premier post que les dites lignes blanches ne comportent pas de tabulations ou de blancs.

    Ce n’est qu’après avoir rédigé vite une courte réponse que j’ai pensé que ce n’était peut être pas aussi restrictif que ça, mais comme je n’avais pas le temps j’ai juste mis un PS, un peu trop court apparemment, qui signifiait qu’en cas de blancs et tabulations, comme replace() sur string ne suffit pas, il faut se résoudre à employer les regex même si on aimerait faire plus simple. Je trouve en effet qu’on a tendance à mettre les regex à toutes les sauces. Mais ça ne veut pas dire qu’il faut se faire souffrir pour ne pas recourir à une regex. snafu a tout à fait raison: parfois, et même souvent, c’est bon le chocolat.





    Donc en l’occurence, il ne faut pas essayer de mettre un carré dans un trou rond:

    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $string=str_replace("\n\n"|,'\n',$string); 
    $string=str_replace("\t",'',$string);
    c’est se compliquer inutilement la vie.
    Et en plus c’est faux: il faudrait n’éliminer les “\t“ que quand ils sont entre deux “\n“ sans autres caractères non blancs. Or la deuxième instruction va les éliminer partout dans $string.

    Laisse tomber mon str_replace() , désolé d’avoir fait un post à la noix, et emploie une regex.







    Ceci dit, tu as raison, la RE de snafu ne convient pas. Bien qu’il ne soit pas manchot, il a fait comme moi: rédigé trop vite.
    Son code va remplacer tous les blancs par des ’\n’, donc ’la tarte’ ne va pas devenir ’latarte’ mais ’la\ntarte’.
    C’est à dire qu’on va se retrouver avec un retour à la ligne après chaque mot.







    Donc pour régler le problème, sauf erreur, voici ce que je propose pour éliminer des lignes vides, y compris celles comportant éventuellement des blancs ’ ’, des tabulation ’\t’, et autres caractères bizarres que j’ai trouvés au bas de cette page:
    http://docs.python.org/release/2.5.4/lib/re-syntax.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str = preg_replace(((?<=\n)[ \a\b\f\r\t\v]*\n)+“,'',$str)
    EDIT: il y avait ' au lieu de ''



    Je précise:

    - Je sais qu’il y a une différence en PHP entre l’utilisation de et celle de , mais je n’ai pas encore compris en quoi consiste cette différence. Il faut coriger l’expression ci-dessus sur ce point si c’est nécessaire.

    - J’ai mis dans cette expression les caractères ’\a’ , ’\b’ , '\f’ ,’\v’ mais je ne sais pas à quoi ils servent

    - Dans cette expression il n’y a pas ’\x’ car si j’écris une chaîne avec ’\x’ à l’intérieur, cela bloque l’exécution du programme. Sic.

    - (?<=\n)[ \a\b\f\r\t\v]*\n tout seul ne suffit pas : cela n’attrape pas plusieurs lignes vides successives. Pour y parvenir il faut permettre la répétition de ce motif, en le prenant dans ( )+




    N’ayant pas installé PHP, je fais tourner mes programmes d’essai de regex en Python.

    Pour le cas présent, j’ai fait tourner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import re
     
    pat = re.compile('((?<=\n)[ \a\b\f\r\t\v]*\n)+')
     
    ch = 'adrenaline\n\npara\rchute\v\v\n \a \b\f\t\t \ntrois fois \n  \b\f \v\n  \t\ncou\vteau'
    print repr(ch)
    print
    print ch
    print '\n\n\n'
     
     
    g = pat.sub('',ch)
    print repr(g)
    print
    print g

    ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'adrenaline\n\npara\rchute\x0b\x0b\n \x07 \x08\x0c\t\t \ntrois fois \n  \x08\x0c \x0b\n  \t\ncou\x0bteau'
     
    adrenaline
     
    para
    chute
      		 
    trois fois 
       
     
    couteau
     
     
     
     
    'adrenaline\npara\rchute\x0b\x0b\ntrois fois \ncou\x0bteau'
     
    adrenaline
    para
    chute
    trois fois 
    couteau

    Les ’\a’ , ’\b’ etc sont affichés sous forme de carré (ne me demandez pas pourquoi).

    On voit que les caractères blanc ’ ’ , ’\v’ , ’\r’ présents dans une ligne non vide (à l’intérieur d’un mot ou à la fin de la ligne) ne sont pas éliminés.





    Le sujet devrait se trouver résolu désormais.

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    merci .j'ai ajouté çà selon vos conseils

    par contre je comprends pas le code suivant .pour moi ca va supprimer tous les espaces .s'il y a un mot "la tarte" ca va donner "latarte".
    Oui. Mais à la lecture de l'exemple, j'avais tout simplement émis l'hypothèse qu'il ne fallait parser que des lignes d'url ne contenant pas d'espace.
    D'où la rapidité d'écriture...
    J'aurais aussi pu écrire => ce ne sont toujours que des exemples qui doivent ensuite être adaptés à la problématique particulière du demandeur.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    J’ai regardé d’un peu plus près \s , ce que je n’avais jamais fait.



    Je me suis aperçu que \s :
    - matche avec ’\f’ , ’\n’ , ’\r’ , ’\t’ , ’\v’ et un blanc ’ ’
    - ne matche pas avec ’\a’ et ’\b’
    - avec ’\x’ , je ne sais pas, je n’arrive pas à écrire \x dans une chaîne en Python sans que ça bloque tout le programme

    Du moins en Python.





    Conséquences:



    1)
    Le fait que \s matche avec les fins de ligne, aussi bien quand elles sont ’\n’ que ’\r’ ou ’\r\n’ entraine qu’une regex dont la RE de définition comporte \s peut matcher sur plusieurs lignes alors qu’on croit rester dans une seule, à cause du fait que \s va passer par exemple sur ’\n’ sans problème.
    Je n’y avais jamais fait attention.


    2)
    snafu, tes RE
    '/\s+/s' et '/^\s*/sm'
    “digèrent“ les fins de lignes aussi bien que les blancs parce que \s matche avec ’\n’ ou ’\r\n’, pas parce qu’il y a l’option s.

    En l’occurence, l’option s ne sert à rien dans ces RE puisqu’elles ne comportent pas de métacaractère point .

    D’ailleurs dans le cas de la seconde, s’il y avait un métacaractère point, la présence des deux options s et m en même temps serait contradictoire.






    Mais à la lecture de l'exemple, j'avais tout simplement émis l'hypothèse qu'il ne fallait parser que des lignes d'url ne contenant pas d'espace.
    Oui, c’est vrai. Moi aussi sans doute, je ne me rappelle plus bien.

    Pour un tel cas de lignes ne contenant pas d'espace, la RE '/\s+/' marche alors parfaitement bien et c’est mieux que ma RE plus compliquée qui s’applique aux cas généraux quelconques.

    Mais désolé, '/^\s*/m' ne marche pas du tout:
    ça détecte les chaînes de longueur zéro (zero-length string) , ou si on préfère les intercaractères, situés en tête d’une ligne et preg_replace('/\^\s*\', "\n", $str) les remplace par ’\n’ -> on se retrouve avec des lignes blanches entre TOUTES les lignes, cette fois ci. Il vaudrait mieux tester les codes. Quand je ne le fais pas, je me plante régulièrement.



    Quant à '\^\s+\' , ça bosse mais le résultat est identique à la chaîne de départ.

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par eyquem Voir le message
    Il vaudrait mieux tester les codes. Quand je ne le fais pas, je me plante régulièrement.
    En l'occurrence, je l'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $str = 'www.bestwebsitesdesigner.com
    www.wichit.tkrnal.com
    www.wichit.tk
    www.sharkpoker.fr
    
    www.lowongankerja2010x.com
    www.adscoupons.com
    www.nypestpro.com
    aripiprazoles.com
    www.oneims.com
    terabyte-movie.comrnal.com
    aripiprazoles.com
    
    terabyte-movie.com';
     
    $reg = '/^\s*/m';
     
    $str = preg_replace($reg, '', $str);
    print_r($str);
    Dans le cas précédent, l'option s ne sert effectivement à rien. Mais elle ne gêne pas non plus. Dans la plupart de mes regex, j'utilise systématiquement le modificateur mxs, et je trouve que ce n'est pas une si mauvaise pratique (les gouts et les couleurs... ). Si je me rappelle bien, j'ai dû prendre cette habitude après avoir lu "De l'art de programmer en Perl". Il arrive donc que cette option traîne un peu dans les parages pour pas grand chose, mais cela ne m'empêche pas de dormir: dans la plupart des cas que je rencontre, c'est plus son absence qui pose problème.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  11. #11
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Aaaaaaah d’aaccooooord......


    Dans #5 tu as écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('/\s+/s', "\n", $str);
    Dans #8 :
    sans préciser que la chaîne de remplacement est '' et non plus ’\n’
    Si j’avais réfléchi 1 mn, j’aurais fini par trouver, mais enfin c’est assez piégeux et le pauvre bigs3232 risquait de tourner en rond encore une fois lui aussi.





    J’ai comparé les vitesses de différents codes avec ces solutions.



    D’abord des codes de détection seulement:
    re.findall( '\s+' , ch ) la première RE dont il a été question
    re.findall( '^\s*' , ch , re.M ) re.M est l’option m en Python
    et aussi ai je pensé:
    re.findall( ’^\s+’ , ch , re.M )

    La regex basée sur la seconde RE est 14 % moins longue que la première. C’est sans doute parce que chercher ’^’ qui symbolise quelque chose d’unique est plus facile que chercher ’\s’ qui symbolise plusieurs caractères. Or pour l’un comme pour l’autre, le moteur de regex doit tester chaque caractère de la chaîne explorée l’un après l’autre.


    La troisième regex est encore plus rapide: 40 % de temps en moins que la première. Pour le moteur de regex, chercher une position après une fin de ligne suivie obligatoirement d’un caractére matchant ’\s’ est une tâche plus étroite que chercher une telle position suivie de n’importe quel caractère. On vérifie là que plus une RE est précise, plus la recherche est rapide.




    Ensuite j’ai testé des codes de recherche-substitution:
    re.sub( '\s+' , ’\n’ , ch ) la première RE dont il a été question
    re.sub( '^\s*' , '' , ch , re.M ) re.M est l’option m en Python
    re.sub( ’^\s+’ , '' , ch , re.M )

    Les temps absolus sont 15 à 20 % plus grands. C’est la détection qui prend le plus de temps, par rapport à la substitution.
    Mais au niveau des temps relatifs, ça ne change rien de façon perceptible.
    première : référence
    2ième: - 14 % de temps
    3ième: - 43 % de temps en moins




    La troisiène RE ’^\s+’ est donc la mieux car elle permet de ne remplacer par '’ que les débuts de lignes remplies de blancs et autres caractères invisbles, ce qui se traduit par une plus grande rapidité.

    Tandis que '^\s*' oblige à remplacer aussi par ’’ toutes les positions de longueur zéro qui se trouvent au début de toutes les lignes, opérations tout à fait inutile s'il en est....

    En outre $str = preg_replace( ’^\s+’ , '', $str); correspond plus précisément à ce qui doit être fait.



    Remarque:
    je pense qu'avec sed , ce serait encore plus rapide



    J’espère ne pas m’être trompé encore une fois.

  12. #12
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par eyquem Voir le message
    La troisième regex est encore plus rapide: 40 % de temps en moins que la première. Pour le moteur de regex, chercher une position après une fin de ligne suivie obligatoirement d’un caractére matchant ’\s’ est une tâche plus étroite que chercher une telle position suivie de n’importe quel caractère. On vérifie là que plus une RE est précise, plus la recherche est rapide.
    Ca c'est étonnant, et intéressant, je testerais quand j'aurais un peu de temps.
    En effet, le caractère greedy des regex PCRE lui fait attraper le plus grand nombre de match possible. Donc \s* ou \s+, je ne vois pas la subtilité au niveau vitesse, parce qu'en l'occurence, il ne s'agit pas de matcher n'importe quel caractère : dans les deux cas, seul le blanc est recherché. Et il n'y a pas non plus de backtracking. A suivre...
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    j'ai pas bien compris vos explications .ca n'empêche qu'on apprend pas mal de choses.sinon ce qui a l'air de marcher c'est çà.
    le s a la fin est nécessaire , sinon ca ne marche pas
    $content = preg_replace( "#^\s+#s" , '', $content);
    merci à tous les deux

  14. #14
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Salut bigs3232,


    Il y a deux choses inadmissibles dans ton post, je ne sais laquelle l’est le plus:

    - « sinon ce qui a l'air de marcher c'est ça. »

    Ça a l’air de marcher !
    Ce n’est pourtant pas bien difficile de savoir si quelque chose marche toujours, ne marche jamais, ou marche parfois oui parfois non, et de prendre la peine d’établir de façon moins floue ce qu’il en est vraiment.
    Une porte est ouverte, ou fermée, ou entrebaillée. Sinon c’est une porte extra-terrestre.


    - « sinon ca ne marche pas »

    Sans autre précision: grrr.
    On se décarcasse à raisonner et tester sur un problème, et tout ce qu’on a comme retour, c’est « ça maaaaarche pas».

    Perso je suis très curieux de savoir comment se manifeste ce «ça marche pas»:
    il y a une erreur ? ça ne produit pas le résultat attendu ? ça ne produit aucun résultat ?
    C’est QUOI qui se produit ?



    D’autant que la nécessité de l’option s pour que ça marche (ou que ça semble marcher) est aberrante:
    cette option sert à permettre au métacaractère point de matcher avec les fins de ligne.
    Or il n’y a pas de point dans la RE
    "#^\s+#s"

    Donc si ça ne marche pas, c’est dû à un autre facteur, et j’aimerais bien comprendre lequel.



    J’espère que tu va nous donner des éclaircissements.

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut des précisisions
    en fait, tu ne nous dits pas quelle est la source de ce fragment de texte :

    fichier ( quel extension ? quel type mime ? quel encodage ? )
    copier collé en AJAX dans un éditeur de texte ?

    etc...

    ce qui pourrait nous permettre de savoir quelle(s) fonction(s) te proposer pour élucider ton problème
    Conception / Dev

Discussions similaires

  1. Supprimer des lignes vides d'un CSV
    Par amine.h dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2010, 17h40
  2. KSH: Supprimer des lignes vides (sans espaces ni tab) en fin de fichier text
    Par SmileAndFly dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 31/07/2008, 20h47
  3. Supprimer des lignes vides dans un label
    Par benjhe dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/12/2007, 08h57
  4. Supprimer des lignes vides
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/11/2007, 19h32
  5. supprimer des lignes vides
    Par Medmidou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/10/2007, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo