[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
23 août 2018
20
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
236
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
236
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