1) Remerciements 2) Question sur "Left"

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.

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.

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

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

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

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

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.

Bonjour tous,

Autre suggestion : essaye en passant par une autre variable string temporaire

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...

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 ?

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

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

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.

Rechercher des sujets similaires à "remerciements question left"