1) Remerciements 2) Question sur "Left"  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

1) Remerciements 2) Question sur "Left"  Sujet résolu

Messagepar pelerin98 » 05 Août 2009, 10:45

Bonjour à toutes et à tous,

Voilà à peu près 6 mois que j'ai décidé de m'initier à VBA Excel en développant pour une amie distante de 700 km, un programme pour l'aider dans la gestion de son entreprise de nettoyage.
Ca n'a pas été facile car mon cerveau n'est plus aussi agile qu'à 20 ans (j'en ai aujourdh'ui 67) mais grace au forum j'ai pu avancer et je suis presque au bout.
:D Donc, Bravo pour le forum et des mercis spécifiques et particulièrement appuyés à :
aborsell
CB60
cousinhub
dubois
Math
Nad-Dan
vba-new
pour leur compétence, leur gentillesse et leur patience.

:oops: Des excuses à Readi pour l'avoir trop sollicité alors que je n'avais pas encore bien intégré l'esprit de ce forum (du genre "aide toi et le ciel t'aidera) . . . j'essaie mintenant de bien réfléchir et de tenter des expériences avant de poser une question.

Ma question :
Lorsque j'ai tranféré par téléchargement mon projet à cette amie, cela plantait lamentablement alors que ça marchait sur mon ordinateur.
"cousinhub" m'a alors indiqué que si mon ordi était "vacciné" contre ma rédaction VBA approximative (variables pas ou mal déclarées etc . . . ) il n'en était pas de même lorsque je transfétais sur un autre ordi, car Excel revérifiait toute la syntaxe.
J'ai donc, pas à pas, revisité et corrigé ma rédaction.
Les résultats sont là : sur 5 modules, j'en ai contrôlé et corrigé 3 qui marchent parfaitement après transfert sur un autre ordi.
Mais je bloque sur une instruction "Left" que l'ordi de destintion se refuse à connaître (alrs qu'il a la même version d'Excel)
sur une instruction Reduit = Left(Range("M" & n + 2).Value, 7) le message d'erreur est :
Erreur de compilation :
Projet ou bibliothèque introuvable

:?:
Merci de pelerin98.
Bonne journée.
Avatar de l’utilisateur
pelerin98
Membre fidèle
 
Messages: 249
Inscription: 08 Mars 2009, 18:40
Version Excel: MicrosoftOffice Excel 2003

Messagepar Nad-Dan » 05 Août 2009, 12:32

Bonjour,

Merci de tes remerciements à tous.

Pour ton pb, il faudrait savoir pour "n" :
- A quoi cela correspond. Ici cela doit être un chiffre
- le type de variable déclarée
- d'où vient la valeur "n" (une boucle, ... ?)

A te relire

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar pelerin98 » 06 Août 2009, 13:47

Bonjour Nad-Dan,

Pour répondre à tes questions :
"n" est dans une boucle "For . . . Next" et est déclaré en début de macro par Dim n As Integer
"Reduit" est déclaré en début de macro par Dim Reduit As String
Et voici la boucle :
For n = 1 To 30
If Range("L" & n + 2).Value <> "" Then
Range("K" & n + 2).Value = n
Reduit = Left(Range("M" & n + 2).Value, 7)
Range("M" & n + 2).Value = Reduit
Else
Range("K" & n + 2).Value = ""
End If
Next
Merci de pelerin98.
Bonne journée.
Avatar de l’utilisateur
pelerin98
Membre fidèle
 
Messages: 249
Inscription: 08 Mars 2009, 18:40
Version Excel: MicrosoftOffice Excel 2003

Messagepar Nad-Dan » 07 Août 2009, 08:07

re,

Merci pour le code.
Le pb c'est que l'on ne sait pas ce que tu extrais dand l'instrction à pb.

Essaie de mettre DIM REDUIT à la place de DIM AS STRING.

Amicalement

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar pelerin98 » 07 Août 2009, 09:58

Bonjour Nad-Dan,

merci pour cette proposition. Je pars 10 jours sans internet. Je vais donc essayer et te recontacterai dans 10 jours.
Bonne journée.
Merci de pelerin98.
Bonne journée.
Avatar de l’utilisateur
pelerin98
Membre fidèle
 
Messages: 249
Inscription: 08 Mars 2009, 18:40
Version Excel: MicrosoftOffice Excel 2003

Messagepar Sylvain TBM » 07 Août 2009, 10:52

Bonjour tous,

Autre suggestion : essaye en passant par une autre variable string temporaire :idea:
Code: Tout sélectionner
Dim RedTemp as String, Reduit as String
RedTemp = Range("M" & n + 2).Value
Reduit = Left(RedTemp, 7)
...

Certaines fois c'est bien de compiler au max, mais avec les strings il m'est arrivé souvent que ça n'aime pas trop faire tout en même temps... :roll:
Il vaut mieux 10 qui savent que 1 qui cherche....
Avatar de l’utilisateur
Sylvain TBM
Membre dévoué
 
Messages: 541
Inscription: 11 Juin 2008, 17:35
Localisation: Mazamet, con !
Version Excel: 2003 FR

Messagepar pelerin98 » 16 Août 2009, 15:43

Bonjour Nad-Dan et Sylvain TBM,

Aucune des solutions que vous me proposez ne résoud mon problème. Il me répond toujours :
Erreur de compilation :
Projet ou bibliothèque introuvable

Je ne vois que 2 possibilités pour résoudre ou contourner cette anomalie :
1) y a t-il un moyen de voir si les fonctions Left et Right sont actives (voire chargées) dans la version Excel utilisée par cet ordinateur ?
2) Y a t-il d'autres instructions ou astuces qui me permettraient d'extraire la partie droite d'une chaîne ou la partie gauche sans passer par les fonctions Right ou Left ?
Merci de pelerin98.
Bonne journée.
Avatar de l’utilisateur
pelerin98
Membre fidèle
 
Messages: 249
Inscription: 08 Mars 2009, 18:40
Version Excel: MicrosoftOffice Excel 2003

Messagepar vba-new » 16 Août 2009, 15:54

Bonjour à tous,

Une autre solution serait que tu nous joignes une copie allégée de ton classeur Excel pelerin.
Ça permettra à ceux qui t'aident de tester eux-mêmes et par voie de conséquence, de trouver une solution adéquate.

Cordialement
vba-new
vba-new
Membre impliqué
 
Messages: 2586
Inscription: 13 Mai 2009, 10:27
Version Excel: 2010 FR

Messagepar Nad-Dan » 18 Août 2009, 08:50

re,

Je te rappelle ce que je t'ai demandé dans mon post précédent et auquel tu ne réponds pas --> qu'est ce que tu extrait exactement ? Des chiffres, des lettres, les deux combinés ?

A te relire

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar pelerin98 » 22 Août 2009, 17:59

Pour Nad-Dan,

merci de ton suivi et excuses moi pour les non réponses, mais les vieux qui ne sont pas trop maleureux sont souvent en vadrouille . . . me voilà revenu.

J'ai honte d'avoir résolu mon problème en bottant en touche, mais comme je pense que c'est probablement un problème de version Excel ( puisque ça marche sur mon ordi et pas sur l'ordi "étranger") c'est ma conclusion . . . peut-être erronée.
Alors j'ai voulu ne pas perdre de temps et surtout ne pas vous faire perdre le votre, alors je suis passé par EXCEL en shuntant pour ce problème VBA : j'ai recopié ma donnée initiale (format texte) dans mon fichier par EXCEL et j'ai fait le "LEFT" par EXCEL" dans une autre colonne que j'ai ensuite récupéré par VBA.
Les "LEFT" et "RIGHT" EXCEL fonctionnent et pas en VBA alors j'ai contourné . . .

Je sais, ce n'est pas correct de laisser un problème non résolu, mais puisque ça marche comme ça et que ça vous libère d'une sangsue, ce n'ets pas plus mal.
Merci de pelerin98.
Bonne journée.
Avatar de l’utilisateur
pelerin98
Membre fidèle
 
Messages: 249
Inscription: 08 Mars 2009, 18:40
Version Excel: MicrosoftOffice Excel 2003


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot], Majestic-12 [Bot], rocket4 et 20 invités