OVH Cloud OVH Cloud

compatibilté macro excel 2000 & 97

12 réponses
Avatar
gh
Bonjour,

j'ai créé plusieurs macros sous excel 2000 à la maison pour me faciliter
le travail.
Je les utilise au boulot sur un poste qui tourne avec excel 97. Jusqu'à
aujourd'hui pas de problème.
Ce matin j'essaye la macro que j'ai faite ce week-end, qui n'est que
l'amélioration d'une ancienne.
et la macro s'arrête, sans raison apparente entre deux lignes:
Range("A" & vide).Value = nom
Range("B4").Select
Enfin je ne suis pas une bête en excel, j'ai bougé une msgbox entre
chaque ligne pour voir jusqu'où ça allait: la 23eme ligne sur 200(environ).
Range("A" & vide).Value = nom
msgbox "test" <---- ici apparaît
Range("B4").Select
msgbox "test" <---- ici n'apparaît plus.
je ne pense pas que cela puisse venir d'un problème de dll, car ces
instructions marchent dans d'autres macros. Comme aucun message d'erreur
apparaît et que ca marche nickel chez moi, je suis pommé

Si quelqu'un à déjà été confronté au cas, a une idée de ce qui se passe,
où une solution, je l'en remercie d'avance

merci

2 réponses

1 2
Avatar
gh
ben toujours pas,
je vais me repencher sur le code calmement ce soir


"gh" a écrit dans le message de
news:
j'ai aussi remarqué que mon code sur le coup n'était pas super clean
j'ai modifié tout ça, notement le end with et je me le suis envoyé au
boulot

et je file le tester
verdict ce soir
merci Isabelle

'remplissage tableau recap
Windows("balisagebt.xls").Activate
testligne = 1
With Worksheets("recap").Range("a1:a200")
Set ligne = .Find(nom, LookIn:=xlValues)

adresse = .Find(nom, LookIn:=xlValues).Offset(0, 3).Address
adresse1 = .Find(nom, LookIn:=xlValues).Offset(0, 5).Address
adI = .Find(nom, LookIn:=xlValues).Offset(0, 8).Address
adJ = .Find(nom, LookIn:=xlValues).Offset(0, 9).Address
adK = .Find(nom, LookIn:=xlValues).Offset(0, 10).Address
adL = .Find(nom, LookIn:=xlValues).Offset(0, 11).Address

If ligne Is Nothing Then testligne = 0
End With


If testligne = 0 Then
'remplir premiere ligne vide
Sheets("recap").Select
lastrow = Worksheets("recap").Range("A200").End(xlUp).Row
vide = lastrow + 1
Range("A" & vide).Value = nom
Range("B4").Select
Selection.Copy
Range("B" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("i4").Select
Selection.Copy
Range("i" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("k4").Select
Selection.Copy
Range("k" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'copie bouton col c
ActiveSheet.Shapes("Button 4").Select
Selection.Copy
Range("C" & vide).Select
ActiveSheet.PasteSpecial Format:="Objet dessiné MS Office",
Link:úlse, _
DisplayAsIcon:úlse
Range("d" & vide).Select
Range("d" & vide).Value = "Création"
Range("d" & vide).Interior.ColorIndex = 3
Range("d" & vide).Font.Color = 12
Range("d" & vide).Font.Bold = True
Range("d" & vide).Font.Italic = True
ActiveSheet.Shapes("Button 55").Select
Selection.Copy
Range("E" & vide).Select
ActiveSheet.PasteSpecial Format:="Objet dessiné MS Office",
Link:úlse, _
DisplayAsIcon:úlse

Range("f" & vide).Select
Range("f" & vide).Value = Date
Range("a" & vide).Select
End If
If testligne = 1 Then
'si ligne non vide changer date modif
Sheets("recap").Select
Range(adresse).Value = "Modifié"
Range(adresse).Font.Color = 12
Range(adresse).Interior.ColorIndex = 3
Range(adresse).Font.Bold = True
Range(adresse).Font.Italic = True
Range(adresse1).Select
Range(adresse1).Value = Date
marge1 = Range(adI).Value
marge2 = Range(adK).Value
Range(adJ).Value = marge1
Range(adL).Value = marge2
End If

"isabelle" a écrit dans le message de
news:
je remarque que tu débute la commande
With Worksheets("recap").Range("a1:a200")
sans la terminer ( avant une commande .select).
essaie en mettant le End With juste avant la ligne
If ligne Is Nothing Then

isabelle


merci c'est vraiment sympa isabelle

la macro en entier va chercher des valeurs dans différents fichiers et
c'est


quand j'ai rajouté la partie ( 'ajout modif page garde) que le
problème



est
arrivé
le but de la partie est de verifier si un "nom" est présent dans la
colonne


A
si oui: changer quelques valeurs de la ligne
si non: creer la ligne en copiant des formules et des boutons de la
ligne 4.



Ne te casses pas la tête si tu ne vois pas, je vais bien finir par
l'avoir


merci pour ton aide en tous cas



'ajout modif page garde
'remplissage page recap
Windows("balisagebt.xls").Activate
With Worksheets("recap").Range("a1:a200")
Set ligne = .Find(nom, LookIn:=xlValues)
adresse = .Find(nom, LookIn:=xlValues).Offset(0, 3).Address
adresse1 = .Find(nom, LookIn:=xlValues).Offset(0, 5).Address
adI = .Find(nom, LookIn:=xlValues).Offset(0, 8).Address
adJ = .Find(nom, LookIn:=xlValues).Offset(0, 9).Address
adK = .Find(nom, LookIn:=xlValues).Offset(0, 10).Address
adL = .Find(nom, LookIn:=xlValues).Offset(0, 11).Address

If ligne Is Nothing Then
'remplir premiere ligne vide
Sheets("recap").Select
lastrow = .Range("A200").End(xlUp).Row
vide = lastrow + 1
Range("A" & vide).Value = nom
'<------ c'est ici que tout s'arrête alors que juste avant
' -------toutes les variables sont définies
Range("B4").Select
Selection.Copy
Range("B" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("i4").Select
Selection.Copy
Range("i" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Range("k4").Select
Selection.Copy
Range("k" & vide).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'copie bouton col c
ActiveSheet.Shapes("Button 4").Select
Selection.Copy
Range("C" & vide).Select
ActiveSheet.PasteSpecial Format:="Objet dessiné MS Office",
Link:úlse, _
DisplayAsIcon:úlse
Range("d" & vide).Select
Range("d" & vide).Value = "Création"
Range("d" & vide).Interior.ColorIndex = 3
Range("d" & vide).Font.Color = 12
Range("d" & vide).Font.Bold = True
Range("d" & vide).Font.Italic = True
ActiveSheet.Shapes("Button 55").Select
Selection.Copy
Range("E" & vide).Select
ActiveSheet.PasteSpecial Format:="Objet dessiné MS Office",
Link:úlse, _
DisplayAsIcon:úlse

Range("f" & vide).Select
Range("f" & vide).Value = Date
Range("a" & vide).Select
End If
'si ligne non vide changer date modif
Sheets("recap").Select
Range(adresse).Value = "Modifié"
Range(adresse).Font.Color = 12
Range(adresse).Interior.ColorIndex = 3
Range(adresse).Font.Bold = True
Range(adresse).Font.Italic = True
Range(adresse1).Select
Range(adresse1).Value = Date
marge1 = Range(adI).Value
marge2 = Range(adK).Value
Range(adJ).Value = marge1
Range(adL).Value = marge2
End With






'---------------------------------------------------------------------------

-------------------------------------------










Avatar
gh
j'ai trouvé!!!

quand il va en B4
il y a une fonction que j'ai créé:
þuille (x,y)
qui va chercher la valeur de la cellule y dans la feuille x ou x est la
valeur de la colonne A ou se trouve la fonction

Function feuille(X As String, Y As String)
Application.Volatile True
datebal = Sheets(X).Range(Y).Value
feuille = datebal
End Function

et visiblement excel 97 reste bloqué dedans!
va falloir que je trouve autre chose

merci de t'être pris la tête avec moi Isabelle
bonne soirée
1 2