Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne
fonctionne pas, il bloque à la ligne suivante:
"c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value"
Pourquoi?
Voici ma macro:
_____________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster
Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value +
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
' ------il bloque ici
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' ------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If
End Sub
Comme ce sont des opérations mathématiques, tu dois
t'assurer que toutes les colonnes impliquées dans la ligne
de code que tu mentionnes sont au format standard et
que leur contenu est numérique.
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
%23$7m1ZDMHHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne
fonctionne pas, il bloque à la ligne suivante:
"c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value"
Pourquoi?
Voici ma macro:
_____________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster
Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value +
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
' ------il bloque ici
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' ------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If
End Sub
Érico
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi et là ça fonctionne?
Merci
"MichDenis" a écrit dans le message de news:
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' ------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If
End Sub
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi et
là ça fonctionne?
Merci
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uL7IFdEMHHA.4888@TK2MSFTNGP02.phx.gbl...
Comme ce sont des opérations mathématiques, tu dois
t'assurer que toutes les colonnes impliquées dans la ligne
de code que tu mentionnes sont au format standard et
que leur contenu est numérique.
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
%23$7m1ZDMHHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne
fonctionne pas, il bloque à la ligne suivante:
"c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value"
Pourquoi?
Voici ma macro:
_____________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster
Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value +
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
' ------il bloque ici
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi et là ça fonctionne?
Merci
"MichDenis" a écrit dans le message de news:
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' ------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If
End Sub
Érico
Je viens d'ouvrir mon fichier ce matin et ça fonctionne. Sauf après 2-3 tentatives, ça ne fonctionne plus.
Surement une erreur dans la macro?
J'apprécie votre aide. Merci
"Érico" a écrit dans le message de news:
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi et là ça fonctionne?
Merci
"MichDenis" a écrit dans le message de news:
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' <------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If
End Sub
Je viens d'ouvrir mon fichier ce matin et ça fonctionne.
Sauf après 2-3 tentatives, ça ne fonctionne plus.
Surement une erreur dans la macro?
J'apprécie votre aide.
Merci
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
eQyTxgEMHHA.4912@TK2MSFTNGP02.phx.gbl...
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi
et là ça fonctionne?
Merci
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uL7IFdEMHHA.4888@TK2MSFTNGP02.phx.gbl...
Comme ce sont des opérations mathématiques, tu dois
t'assurer que toutes les colonnes impliquées dans la ligne
de code que tu mentionnes sont au format standard et
que leur contenu est numérique.
"Érico" <hahaha@videotron.ca> a écrit dans le message de news:
%23$7m1ZDMHHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne
fonctionne pas, il bloque à la ligne suivante:
"c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value"
Pourquoi?
Voici ma macro:
_____________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster
Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value +
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos
disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
' <------il bloque ici
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
Je viens d'ouvrir mon fichier ce matin et ça fonctionne. Sauf après 2-3 tentatives, ça ne fonctionne plus.
Surement une erreur dans la macro?
J'apprécie votre aide. Merci
"Érico" a écrit dans le message de news:
Mais pourquoi, des fois il ne fonctionne pas et je dois redémarrer l'ordi et là ça fonctionne?
Merci
"MichDenis" a écrit dans le message de news:
Comme ce sont des opérations mathématiques, tu dois t'assurer que toutes les colonnes impliquées dans la ligne de code que tu mentionnes sont au format standard et que leur contenu est numérique.
"Érico" a écrit dans le message de news: %23$ Bonjour,
Ma macro fonctionne dans un fichier, et dans un autre fichier, il ne fonctionne pas, il bloque à la ligne suivante: "c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value" Pourquoi?
Voici ma macro:
_____________________________________________ Private Sub Worksheet_Change(ByVal Target As Range)
Const iMin As Long = 17 'A ajuster Const iMax As Long = 169 'A ajuster Const iCol As Long = 57 'A ajuster
Dim Rg As Range Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne BD
If Not Rg Is Nothing Then Application.EnableEvents = False For Each c In Rg If c <> "" Then If IsNumeric(c) Then If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + c.Offset(, -1).Value Then MsgBox "Le montant est supérieur à vos disponibilités." c.Select Application.EnableEvents = True Set Rg1 = Target Exit Sub Else c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value ' <------il bloque ici End If Else c.Value = "" End If End If Next Set Rg1 = Target Application.EnableEvents = True Else Set Rg = Nothing End If