CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Utiliser un TRIM avec VB2005 et Excel

dexter_68
dexter_68
Niveau 10
27 mars 2007 à 10:45:54

:salut: tout le monde ! :ok:

Je suis actuellement en stage et je dois réaliser une application qui calcule des données à partir de classeurs Excel à charger auparavant.

:d) Le problème que je rencontre est que les valeurs des cellules possèdent souvent des espaces "en trop" (par exemple si je souhaite rechercher le nom ´CDD´, dans certains classeurs il est noté ´CDD´ et dans certains autres, il est noté ´CDD_____´).

De ce fait, mon programme ne reconnaît pas (et donc ne prend pas en compte) le deuxième ´CDD´ a cause des espaces à droite... :doute:

Note : Les _ représentent des espaces "en trop" :)

:d) J´ai lu qu´il fallait utiliser la fonction TRIM pour supprimer les espaces de gauche et de droite mais je ne voit pas du tout comment l´utiliser avec VB2005 et Excel (il faudrait que j´arrive à les enlever automatiquement dans le tableau complet)

:d) Est-ce que vous savez comment je dois faire ça :question:

Je vous remercie d´avance ! Vous m´ôteriez une belle épine du pied... :ange:

godrik
godrik
Niveau 30
27 mars 2007 à 13:24:35

je ne sais pas si ca t´aide vraiment
mais dans excel tu peux faire directement ´=trim(A1)´

dexter_68
dexter_68
Niveau 10
27 mars 2007 à 13:42:12

godrik :d) :merci: pour ta réponse mais ce que j´aimerais c´est que ça modifie toutes les cellules du tableau et cela automatiquement à partir de Visual Basic 2005 Express :ok:

:d) Je pense qu´il faudrait que je fasse une boucle mais je ne sais pas du tout comment programmer ça (ni comment déclarer les différentes variables) :snif:

:d) Si vous avez des idées n´hésitez pas parce que ce problème bloque complètement l´avancée de mon programme :snif2:

godrik
godrik
Niveau 30
27 mars 2007 à 13:53:30

je penses qu´il y a une fonction trim en vb qui fait l´operation que tu veux sur une chaine de caractere.
il reste a la récupérer du tableau
mais cela va ressembler a (en pseudo syntaxe vb et appel aux api excel):
for i = 1 to 1000
s = getValeurCase ("A" + i) //c´est bien + la concatenation en basic ?
s = trim (s)
setValeurCase ("A" + i)
end

J´ai l´impression que ton probleme vient plus de VB que de l´intercfacage avec excel. non ?

si c´est bien le cas tu devrais lire un cours de VB 2005.net

dexter_68
dexter_68
Niveau 10
27 mars 2007 à 14:20:42

godrik :d) :merci: beaucoup !! !!! :ange: :ange:

Grâce a toi j´ai réussi !! :content:

Il fallait faire :

Dim s As String
Dim longueur As Integer
Dim largeur As Integer

For largeur = 1 To
xlsapp.Range("A1").CurrentRegion.End(Excel.XlDirec
tion.xlToRight).Column
For longueur = 1 To
xlsapp.Range("A1").CurrentRegion.End(Excel.XlDirec
tion.xlDown).Row
s =
xlsapp.ActiveWorkbook.Worksheets("Feuil1").cells(l
argeur, longueur).value
s = Trim(s)

xlsapp.ActiveWorkbook.Worksheets("Feuil1").cells(l
argeur, longueur).value = s
Next
Next

dexter_68
dexter_68
Niveau 10
27 mars 2007 à 14:39:04

mince c´était une fausse alerte... ça ne fonctionne pas encore :snif:

:d) Mais en tout cas, je suis sur une meilleure voie qu´avant :ok:

:d) N´hésitez pas si vous avez des solutions :-)))

dexter_68
dexter_68
Niveau 10
27 mars 2007 à 17:50:28

J´ai compris mon erreur il fallait simplement que j´inverse les variables longueur et largeur
(xlsapp.ActiveWorkbook.Worksheets("Feuil1").cells(
longueur, largeur).value

:d) ça fonctionne maintenant mais c´est vraiment très très très (...) très long :doute:

:d) Mon tableau contient 15 colonnes et 3800 lignes et le temps nécéssaire pour enlever tous les espaces en trop en utilisant cette méthode est d´environ 10 minutes :ouch: avec un P4 3.0 Ghz et 1GO de ram (l´application est censée pouvoir tourner sur un portable 2 fois moins puissant donc j´imagine pas la durée... :o)) )

:d) Je vous en supplie dites moi si je pourrais faire autrement !! :ange:

(en tout cas merci quand même godrik de m´avoir donné cette solution :-) )

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment