Je rentre de vacances et j'ai lu ton message dans le dossier (comment
convertir une macro excel en vba). Mais j'ai toujours un probleme à la ligne
« set c=selection… » , j’ai le message « erreur d’execution 13 :
incompatibilité de type ».
Et encore merci pour ton aide.
fichier Entrees:
Date, BE, CodeArt, Design, Numserie, dhr, cde, clt, Qte, gisem,Sortie le, N°
BS
je voudrais donc les comparés, afin de gérer le stock. je compare donc les
n° de serie et je calcule le stock restant avec les qte. Si qte = 0 je mets
Ok dans verif.
Tiens, un message de Michel Gaboly pour Michel Gaboly... Nouveau pense be^te : un forum lol
-- JLuc
deeperpaul
Salut Michel,
Avec la modif je n'ai plus de message d'erreur par contre il ne fait rien du tout, cela va directement à End If.
j'ai remplacé set c = selection.... par On Error Resume Next Err = 0 Cells.Find(What:=numserie, LookIn:=xlValues).Activate If Err <> 0 Then MsgBox numserie + " pas trouvé !" Else
et cela marche très bien.
Je te remercie pout tout le mal que tu t'ai donné. Effectivement je ne connais pas VBA, mais justement j'essaie de m'y mettre, ce qui est moins évident que les macros excel (pour moi).
Bonsoir,
Dans la ligne Set c, ...
pourquoi "ActiveSheet.Evaluate("numSerie")"
Cela revient à utiliser la valeur associée au nom "numSerie" dans la feuille (créé par Macro ou avec Insertion/Nom/Définir...). Quelle est cette valeur ?
Si tu es sur PC, au moment de l'erreur, sélectionne "ActiveSheet.Evaluate("numSerie")" et appuie à la fois sur Maj et F9 pour avoir la réponse.
Que se passe-t-il en remplaçant "ActiveSheet.Evaluate("numSerie")" par "numsérie", sans guillemet, variable définie un peu + haut dans le code (numserie = ActiveCell.Value) ?
L'instruction modifiée serait alors:
Set c = Selection.Find(numserie, ActiveCell, xlFormulas, xlPart, xlByRows, xlNext, False)
Enfin, si tu ne connais pas VBA, pourquoi comme le suggérait un des intervenants ne pas continuer à utiliser la macro XL4 ? Elle devrait continuer à fonctionner avec n'importe quelle version récente d'Excel (Mac ou PC) ?
Tiens-moi au courant.
Bonjour Michel,
Je rentre de vacances et j'ai lu ton message dans le dossier (comment convertir une macro excel en vba). Mais j'ai toujours un probleme à la ligne « set c=selection… » , j’ai le message « erreur d’execution 13 : incompatibilité de type ».
Et encore merci pour ton aide.
fichier Entrees: Date, BE, CodeArt, Design, Numserie, dhr, cde, clt, Qte, gisem,Sortie le, N° BS
je voudrais donc les comparés, afin de gérer le stock. je compare donc les n° de serie et je calcule le stock restant avec les qte. Si qte = 0 je mets Ok dans verif.
Set c = Selection.Find(ActiveSheet.Evaluate("numSerie"), ActiveCell, xlFormulas, xlPart, xlByRows, xlNext, False) If Not c Is Nothing Then Windows("Sorties.xls").Activate Cells(ActiveCell.Row, 1).Select Selection.Copy Windows("Entrees.xls").Activate ActiveSheet.Paste ActiveCell.Offset(0, 1).Select Windows("Sorties.xls").Activate Cells(ActiveCell.Row, 2).Select Selection.Copy Windows("Entrees.xls").Activate ActiveSheet.Paste Cells(ActiveCell.Row, 9).Select qte_E = ActiveCell.Value ActiveCell = qte_E - qte_S Windows("Sorties.xls").Activate Cells(ActiveCell.Row, 10).Select ActiveCell.FormulaR1C1 = "OK" End If Cells(ActiveCell.Row + 1, 1).Select qte_E = 0 qte_S = 0 Wend Windows("Entrees.xls").Activate Cells(1, 1).Select End Sub
-- Cordialement,
Michel Gaboly www.gaboly.com
Salut Michel,
Avec la modif je n'ai plus de message d'erreur par contre il ne fait rien du
tout, cela va directement à End If.
j'ai remplacé set c = selection.... par
On Error Resume Next
Err = 0
Cells.Find(What:=numserie, LookIn:=xlValues).Activate
If Err <> 0 Then
MsgBox numserie + " pas trouvé !"
Else
et cela marche très bien.
Je te remercie pout tout le mal que tu t'ai donné.
Effectivement je ne connais pas VBA, mais justement j'essaie de m'y mettre,
ce qui est moins évident que les macros excel (pour moi).
Bonsoir,
Dans la ligne Set c, ...
pourquoi "ActiveSheet.Evaluate("numSerie")"
Cela revient à utiliser la valeur associée au nom "numSerie" dans la feuille (créé par Macro ou avec
Insertion/Nom/Définir...). Quelle est cette valeur ?
Si tu es sur PC, au moment de l'erreur, sélectionne "ActiveSheet.Evaluate("numSerie")" et appuie à la fois sur Maj et F9
pour avoir la réponse.
Que se passe-t-il en remplaçant "ActiveSheet.Evaluate("numSerie")" par "numsérie", sans guillemet, variable définie un
peu + haut dans le code (numserie = ActiveCell.Value) ?
L'instruction modifiée serait alors:
Set c = Selection.Find(numserie, ActiveCell, xlFormulas, xlPart, xlByRows, xlNext, False)
Enfin, si tu ne connais pas VBA, pourquoi comme le suggérait un des intervenants ne pas continuer à utiliser la macro
XL4 ? Elle devrait continuer à fonctionner avec n'importe quelle version récente d'Excel (Mac ou PC) ?
Tiens-moi au courant.
Bonjour Michel,
Je rentre de vacances et j'ai lu ton message dans le dossier (comment
convertir une macro excel en vba). Mais j'ai toujours un probleme à la ligne
« set c=selection… » , j’ai le message « erreur d’execution 13 :
incompatibilité de type ».
Et encore merci pour ton aide.
fichier Entrees:
Date, BE, CodeArt, Design, Numserie, dhr, cde, clt, Qte, gisem,Sortie le, N°
BS
je voudrais donc les comparés, afin de gérer le stock. je compare donc les
n° de serie et je calcule le stock restant avec les qte. Si qte = 0 je mets
Ok dans verif.
Avec la modif je n'ai plus de message d'erreur par contre il ne fait rien du tout, cela va directement à End If.
j'ai remplacé set c = selection.... par On Error Resume Next Err = 0 Cells.Find(What:=numserie, LookIn:=xlValues).Activate If Err <> 0 Then MsgBox numserie + " pas trouvé !" Else
et cela marche très bien.
Je te remercie pout tout le mal que tu t'ai donné. Effectivement je ne connais pas VBA, mais justement j'essaie de m'y mettre, ce qui est moins évident que les macros excel (pour moi).
Bonsoir,
Dans la ligne Set c, ...
pourquoi "ActiveSheet.Evaluate("numSerie")"
Cela revient à utiliser la valeur associée au nom "numSerie" dans la feuille (créé par Macro ou avec Insertion/Nom/Définir...). Quelle est cette valeur ?
Si tu es sur PC, au moment de l'erreur, sélectionne "ActiveSheet.Evaluate("numSerie")" et appuie à la fois sur Maj et F9 pour avoir la réponse.
Que se passe-t-il en remplaçant "ActiveSheet.Evaluate("numSerie")" par "numsérie", sans guillemet, variable définie un peu + haut dans le code (numserie = ActiveCell.Value) ?
L'instruction modifiée serait alors:
Set c = Selection.Find(numserie, ActiveCell, xlFormulas, xlPart, xlByRows, xlNext, False)
Enfin, si tu ne connais pas VBA, pourquoi comme le suggérait un des intervenants ne pas continuer à utiliser la macro XL4 ? Elle devrait continuer à fonctionner avec n'importe quelle version récente d'Excel (Mac ou PC) ?
Tiens-moi au courant.
Bonjour Michel,
Je rentre de vacances et j'ai lu ton message dans le dossier (comment convertir une macro excel en vba). Mais j'ai toujours un probleme à la ligne « set c=selection… » , j’ai le message « erreur d’execution 13 : incompatibilité de type ».
Et encore merci pour ton aide.
fichier Entrees: Date, BE, CodeArt, Design, Numserie, dhr, cde, clt, Qte, gisem,Sortie le, N° BS
je voudrais donc les comparés, afin de gérer le stock. je compare donc les n° de serie et je calcule le stock restant avec les qte. Si qte = 0 je mets Ok dans verif.