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

Signaler
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013

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 =)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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.
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013

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 .....
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013

oups "que quelqu'un d'autre" ... *
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013

Oui je l'utilise par la suite ce tableau, c'est pour ca =)

D'accord j'essaierai Trim, je ne connais pas, merci =)