Ma macro ne fonctionne plus correctement
Résolu
Help
-
Help -
Help -
Bonjour à tous et à toutes,
J'ai une petite question j'ai cette macro qui fonctionnait très bien dans la version d'excel 2003 et maintenant je suis en 2007 et lorsque je l'utilise il me met en jaune
"Num = .Cells(Lg02, 12)" et m'indique erreur 6 dépassement de capacité est-ce que quelqu'un peut m'aider à résoudre le problème je ne peux malheureusement pas vous joindre le fichier qui est confidentiel.
Merci à tous pour votre soutien
Option Explicit
Sub Commentaires()
Dim Lg01 As Long
Dim Lg02 As Long
Dim Lg As Long
Dim Cl01 As Long
Dim Cel As Range
Dim Mot As String
Dim Nom As String
Dim Num As Integer
Dim I As Long
' Abs Hor Vac Rec
Mot = "dtprstiptikpgrt"
Feuil1.Cells.ClearComments
With Workbooks("LOL.xlsm").Worksheets("Base")
For Lg02 = 7 To .Range("L6000").End(xlUp).Row
If .Cells(Lg02, 12) <> "" Then
Num = .Cells(Lg02, 12)
Lg01 = 0
With Feuil1
Set Cel = .Range("B10:B" & .Range("B6000").End(xlUp).Row).Find(what:=Num, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Lg01 = Cel.Row
End If
End With
If Lg01 <> 0 Then
Lg = Lg02
While .Cells(Lg, 33) <> ""
Cl01 = 1 + (.Cells(Lg, 33) * 4) + Int(InStr(1, Mot, .Cells(Lg, 13)) / 3)
Nom = .Cells(Lg, 35) & "/" & .Cells(Lg, 36) & "/" & .Cells(Lg, 37) & "/" & .Cells(Lg, 40)
While Right(Nom, 1) = "/"
Nom = Left(Nom, Len(Nom) - 1)
Wend
With Feuil1.Cells(Lg01, Cl01)
If .Comment Is Nothing Then
.AddComment
.Comment.Text Text:="Info:" & vbLf
End If
.Comment.Text Text:=.Comment.Text & Nom & vbLf
.Comment.Shape.TextFrame.AutoSize = True
End With
Lg = Lg + 1
Wend
End If
End If
Next Lg02
End With
End Sub
J'ai une petite question j'ai cette macro qui fonctionnait très bien dans la version d'excel 2003 et maintenant je suis en 2007 et lorsque je l'utilise il me met en jaune
"Num = .Cells(Lg02, 12)" et m'indique erreur 6 dépassement de capacité est-ce que quelqu'un peut m'aider à résoudre le problème je ne peux malheureusement pas vous joindre le fichier qui est confidentiel.
Merci à tous pour votre soutien
Option Explicit
Sub Commentaires()
Dim Lg01 As Long
Dim Lg02 As Long
Dim Lg As Long
Dim Cl01 As Long
Dim Cel As Range
Dim Mot As String
Dim Nom As String
Dim Num As Integer
Dim I As Long
' Abs Hor Vac Rec
Mot = "dtprstiptikpgrt"
Feuil1.Cells.ClearComments
With Workbooks("LOL.xlsm").Worksheets("Base")
For Lg02 = 7 To .Range("L6000").End(xlUp).Row
If .Cells(Lg02, 12) <> "" Then
Num = .Cells(Lg02, 12)
Lg01 = 0
With Feuil1
Set Cel = .Range("B10:B" & .Range("B6000").End(xlUp).Row).Find(what:=Num, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Lg01 = Cel.Row
End If
End With
If Lg01 <> 0 Then
Lg = Lg02
While .Cells(Lg, 33) <> ""
Cl01 = 1 + (.Cells(Lg, 33) * 4) + Int(InStr(1, Mot, .Cells(Lg, 13)) / 3)
Nom = .Cells(Lg, 35) & "/" & .Cells(Lg, 36) & "/" & .Cells(Lg, 37) & "/" & .Cells(Lg, 40)
While Right(Nom, 1) = "/"
Nom = Left(Nom, Len(Nom) - 1)
Wend
With Feuil1.Cells(Lg01, Cl01)
If .Comment Is Nothing Then
.AddComment
.Comment.Text Text:="Info:" & vbLf
End If
.Comment.Text Text:=.Comment.Text & Nom & vbLf
.Comment.Shape.TextFrame.AutoSize = True
End With
Lg = Lg + 1
Wend
End If
End If
Next Lg02
End With
End Sub
A voir également:
- Ma macro ne fonctionne plus correctement
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
2 réponses
Bonjour,
A mon avis, le changement de version n'y est pas pour grand chose...
La valeur "bloquante" est :
Workbooks("LOL.xlsm").Worksheets("Base").Cells(Lg02, 12)
Est ce que, dans ta colonne L feuille Base tu as des valeurs supérieures à 32767 ou inférieures à -32768?
Ayant déclaré Num As Integer, ta valeur doit être comprise entre ces deux bornes.
Si c'est le cas, déclare Num As Long et vois...
A mon avis, le changement de version n'y est pas pour grand chose...
La valeur "bloquante" est :
Workbooks("LOL.xlsm").Worksheets("Base").Cells(Lg02, 12)
Est ce que, dans ta colonne L feuille Base tu as des valeurs supérieures à 32767 ou inférieures à -32768?
Ayant déclaré Num As Integer, ta valeur doit être comprise entre ces deux bornes.
Si c'est le cas, déclare Num As Long et vois...
Comme tu es sympa et que tu es revenu pour dire que cela fonctionne et remercier, j'te fais cadeau de ce lien.
Superbe merci beaucoup, ca me fait plaisir je le garderai précieusement....
Dis moi j'ai effectivement trouvé le problème et j'ai mis des chiffres plus petit mais il y a autre chose qui ne fonctionne pas j'ai ouvert une autre discussion c'est assez complexe j'espère que tu pourras m'aider, cette macro m'est vraiment utile...
Dis moi j'ai effectivement trouvé le problème et j'ai mis des chiffres plus petit mais il y a autre chose qui ne fonctionne pas j'ai ouvert une autre discussion c'est assez complexe j'espère que tu pourras m'aider, cette macro m'est vraiment utile...