[VB6 -> VBA] Copie d'une Cellule dans un document Texte

Résolu
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013 - 16 avril 2013 à 11:41
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013 - 16 avril 2013 à 17:04
Bonjour,

J'ai un petit problème et je ne comprend pas pourquoi j'ai ce problème ^^

Voila je veux copier le contenu d'une cellule dans un document texte, donc ca j'y arrive avec pas mal de colonne (en fait le but c'est stocké les différentes valeurs que peuvent prendre des colonnes choisies pour pouvoir les réutiliser plus tard).

Mais pour ma colonne année, j'ai un soucis ... il met un espace avant l'année et apres, du style: " "2011" "

Et ca, ca m'embete beaucoup car quand je viens chercher cette valeur il ne la comprend pas .... Je souhaiterai donc supprimer ces espaces


Mon code:

 Range(Cells(2, 1), Cells(nbLignes, nbColonnes)).Select
    Selection.Sort Key1:=Cells(2, c_year), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    
    filetext = "C:\wamp\www\Actis_Analytics\datas\Years.txt"
    Open filetext For Output As #1
    
    j = 0
    ReDim Preserve tabYears(j)
    tabYears(j) = Cells(2, c_year)
    
    Print #1, tabYears(j)
    
    For i = 3 To nbLignes
        If Cells(i, c_year) <> tabYears(j) And Cells(i, c_year) <> "" And Cells(i, c_year) <> " " Then
            j = j + 1
            ReDim Preserve tabYears(j)
            tabYears(j) = Replace(Cells(i, c_year), " ", "")
            Print #1, tabYears(j)
        End If
    Next
    
    Close #1



Comme vous pouvez le constater juste avant le print je fais bien un replace pourtant ....
tabYears(j) = Replace(Cells(i, c_year), " ", "")



Auriez vous une idée du pourquoi et du comment svp ? ^^


Merci d'avance

7 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
16 avril 2013 à 16:31
Plutôt qu'un Replace tu pourrais utiliser Trim()

Et pourquoi utiliser un tableau ? Est-ce que tu t'en sers ailleurs ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013
16 avril 2013 à 17:04
Ca marche tres bien avec Trim merci a toi

Juste une remarque dans ma fonction je me suis rendu compte qu'il y a un soucis quand meme car je fais avant le "for":

tabYears(j) = Cells(2, c_year)
    
Print #1, tabYears(j)


Or il faut que je fasse un trim ici aussi bien sur .... car mon for est fait pour les années qui suivent, donc:


 '-----------Year-----------------
    
    Range(Cells(2, 1), Cells(nbLignes, nbColonnes)).Select
    Selection.Sort Key1:=Cells(2, c_year), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    
    filetext = "C:\wamp\www\Actis_Analytics\datas\Years.txt"
    Open filetext For Output As #1
    
    j = 0
    ReDim Preserve tabYears(j)
    tabYears(j) = Trim(Cells(2, c_year))
    
    Print #1, tabYears(j)
    
    For i = 3 To nbLignes
        Cells(i, c_year) = Trim(Cells(i, c_year))
        If Cells(i, c_year) <> tabYears(j) And Cells(i, c_year) <> "" And Cells(i, c_year) <> " " Then
            j = j + 1
            ReDim Preserve tabYears(j)
            tabYears(j) = Trim(Cells(i, c_year))
            Print #1, tabYears(j)
        End If
    Next
    
    Close #1



Merci encore en tout cas =)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2013 à 12:44
Bonjour,
je ne comprends pas beaucoup de choses de ton mécanisme et explications, à commencer par :
du style: " "2011" "

Essaye d'être plus précis.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2013 à 12:54
Et je vois qu'il a fallu une fois de plus, qu'un administrateur bienveillant déplace ta discussion vers la section appropriée.
Excuse-moi, mais je te laisse alors personnellement tomber. Débrouille-toi avec tes récidives et refus d'observation d'une discipline élémentaire.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013
16 avril 2013 à 14:38
Merci à l'administrateur d'avoir déplacer la discussion, je confond tout le temps.

Heu ok ucfoutu ...

En espérant quequ'un d'autre veut bien m'aider ... Si cette personne se pose la meme question que ucfoutu et bien dans mon document texte j'ai:
" 2011 " au lieu de "2011", un espace avant et un espace apres et je ne comprend pas d'où viennent ces espaces sachant que ma cellule de départ n'en a pas et qu'en plus je fais un Replace .....
0
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013
16 avril 2013 à 14:39
oups "que quelqu'un d'autre" ... *
0
InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013
16 avril 2013 à 16:51
Oui je l'utilise par la suite ce tableau, c'est pour ca =)

D'accord j'essaierai Trim, je ne connais pas, merci =)
0
Rejoignez-nous