Fonction Split - Erreur de Compilation

Spitnolan08

XLDnaute Barbatruc
Bonsoir le forum,
et les amis toujours présents :)

J'ai un souci qui me fait devenir chèvre : j'ai écrit un code avec la fonction split qui fonctionne très bien dans un fichier mais qui bogue dans un autre sans raison apparente.

Erreur de compilation :
Nombre d'arguments incorrect ou affectation de propriété non valide (erreur 450)


J'ai donc créé une macro en test dans un fichier qui contient les feuilles sources utilisées pour la fonction SPlit et tout fonctionne normalement.

Puis j'ai déplacé (copier-coller) cette macro dans le nouveau fichier qui contient mes userform avec lesquels cette macro doit être mise en oeuvre et là ça bogue !

En fait, la fonction Split n'est plus reconnue par VBA !
Le S de Split se transforme en minuscule et je ne peux même pas lancer la macro. Alors que le reste du code se déroule normalement si je neutralise la ligne contenant Split.
J'ai vérifié les bibliothèques : dans le nouveau classeur, les mêmes références sont cochées et il yen a même plus ...
Je n'ai pas mis d'Option Explicit dans un classeur et pas dans l'autre.

J'ai déjà fait de nombreuses tentatives mais aucune ne résout le problème :mad:
Avez vous une idée ???

Je vous met le code, à tout hasard, mais je ne pense pas que la solution vienne de là puisqu'il fonctionne ailleurs.

Code:
    For i = 3 To 12 
        Y = Split(WbBDVenteShBDFact.Cells(k, i + 3), "|", -1)
        .Activate
        .Range(Cells(i, 57), Cells(i, 78)).ClearContents  '***Efface les données préexistantes de la zone de saisie avant la nouvelle saisie
        For j = 0 To UBound(Y) - 1
            On Error Resume Next   '***Traite le cas d'une cellule vierge ou ne contenant qu'une seule valeur de la base de départ
            .Cells(i, 57 + j) = Y(j)
        Next j
    Next i

Merci de votre aide
 

Spitnolan08

XLDnaute Barbatruc
Merci Bernard, :)

Mais le problème est résolu.

Le reste c'est un peu comme la différence entre la psychanalyse classique et les outils psy modernes.
On peut s'interroger pendant 20 ans sur les causes et ne jamais résoudre ses problèmes ou s'attacher à résoudre le problème sans nécessairement en connaître les causes.

Perso, j'aime bien connaître la genèse si c'est possible, d'où mon
"même si ça n'éclaire pas sur les raisons profondes..."
mais on ne va pas y passer des nuits s'il existe une solution satisfaisante.
Ici, rajouter VBA devant Split me paraît tout à fait satisfaisant.

Encore Merci Bernard pour ton implication et ta ténacité.:)
 

Dranreb

XLDnaute Barbatruc
Moi aussi j'ai été obligé d'utiliser VBA.Format$(…) quelque part. Mais moi au moins je sais pourquoi: c'est parce que j'ai absolument tenu à appeler Format, par ailleurs, une propriété dans un module de classe.
 
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Bonsoir le fil,
Job75, je confirme bien volontiers tes propos :
Concernant .ClearContents, cette méthode fonctionne même s'il ne s'agit pas de la feuille active.
En fait, je faisais la même erreur que dans l'autre fil ouvert et résolu par mapomme :
J'avais un objet Range "pointé" mais pas les cells...
ex :
.Range(Cells(i, 8),Cells(i,75))
alors que la bonne syntaxe est :
Range(.Cells(i, 8),.Cells(i,75))

Merci pour ton aide :)
 

Discussions similaires

Réponses
12
Affichages
559
Réponses
3
Affichages
512

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 009
dernier inscrit
dede972