Quand ça veut pas, ça veut pas !

petithomme

XLDnaute Occasionnel
Bonjour,

je m'en remets une fois de plus à vos yeux et votre savoir,
j'ai un bouton qui appel la macro Actualiser.

Code:
Sub bouton()
'Renseignement des variables pour utiliser la fonction OuvrirFermer
Dim ws As Worksheet
Dim cel As Range
Dim nb As Integer
Set ws = Worksheets(Worksheets("Paramètres").Range("B1").Value)
Set cel = Range(Worksheets("Paramètres").Range("D1").Value)
nb = Worksheets("Paramètres").Range("G1").Value
OuvrirFermer ws, cel, nb
End Sub


Public Sub OuvrirFermer(ws As Worksheet, cel As Range, nbcellules As Integer)
Dim cel2 As Range
Dim i As Integer
Dim nb As Integer
Dim nbcel As Integer
i = 1
Set cel2 = cel(i)
nb = Workbooks.Count
nbcel = cel.Count
While cel2.Value <> "FIN" And i <= nbcel
If Dir(cel2.Value) <> "" Then
    Workbooks.Open cel2.Value
    Workbooks(nb + 1).Close
    cel(i, nbcellules).Font.ColorIndex = 4
    cel(i, nbcellules).Value = "Ouverture réussite"
Else
        cel(i, nbcellules).Font.ColorIndex = 3
        cel(i, nbcellules).Value = "Ouverture echouée"
End If
i = i + 1
Set cel2 = cel(i)
Wend
End Sub

tout marchait très bien mais aujourd'hui en la testant, j'ai un problème :
cel2 n'est pas renseignée et reste donc vide ce qui plante ma macro à :
Code:
If Dir(cel2.value) <> "" Then
    Workbooks.Open cel2.value
pourtant les cellules sont bien renseignées :
Worksheets("Paramètres").Range("B3").Value = Un nom de feuille existante
Worksheets("Paramètres").Range("B4").Value = une plage qui contient les données

J'ai essayé de trouver la faille avec des msgbox pour vérifier le contenu des variable avant de passer par le déboggueur mais sans succès . . .
je pense qu'il y a un problème avec
Code:
set cel2 = cel(i)
mais pourquoi ?

Merci mille fois encore :p
 
Dernière édition:

petithomme

XLDnaute Occasionnel
Re : Quand ça veut pas, ça veut pas !

Ce qui est très fort c'est que j'ai réalisé cette macro dans un fichier excel et tout marchait bien.
j'ai copié la macro, y ais affecté un bouton pour la lancé et mis les paramètres au même endroit et ca plante . . . ! :mad:
 

Spitnolan08

XLDnaute Barbatruc
Re : Quand ça veut pas, ça veut pas !

Bonjour;
Déjà, si j'ai compris le sens de ton code
Code:
Set cel =Range(Worksheets("Paramètres").Range("B4").Value)
ne marche pas bien... Peut être veux tu dire :
Code:
Set cel =Worksheets("Paramètres").Range("B4")
Car sinon cel n'est pas un objet Range

Ensuite, cel(i) ne veut rien dire en l'état.
Peut être veux tu dire : cells(i,"A") par exemple

Si cela peut te permettre d'avancer.
Cordialement

Edit : Ahla la la tu as rajouté plein de trucs dans ton premier message....
 

petithomme

XLDnaute Occasionnel
Re : Quand ça veut pas, ça veut pas !

Spitnolan08 à dit:

Edit : Ahla la la tu as rajouté plein de trucs dans ton premier message....

Oui et je m'en excuse j'ai mis en 1er le code bidouillé ^^ DSL :rolleyes:

Le code actuel est le bon et je retire donc ce que je viens de te dire juste au dessus car cela correspondait à mon bidouillage et donc incorrecte ^^

Défoulez vous sur le code actuel c'est le bon :)
 

petithomme

XLDnaute Occasionnel
Re : Quand ça veut pas, ça veut pas !

MOuhaaaaaaaaaaaaaaaa ! je viens de trouver :

mon bouton n'était pas sur la bonne feuille (enfin à la vue de mon code je vois pas ce que cela change . . .) mais bon ca marche :p
Si vous savez pourquoi ca marchait pas, nop :)
 

Statistiques des forums

Discussions
312 636
Messages
2 090 365
Membres
104 511
dernier inscrit
hsakho