Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
437307a0$0$19706$8fcfb975@news.wanadoo.fr...
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23DGEjoW5FHA.1416@TK2MSFTNGP09.phx.gbl...
Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
43722f5a$0$18324$8fcfb975@news.wanadoo.fr...
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
1131545605.506808.151110@g44g2000cwa.googlegroups.com...
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
437307a0$0$19706$8fcfb975@news.wanadoo.fr...
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23DGEjoW5FHA.1416@TK2MSFTNGP09.phx.gbl...
Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
43722f5a$0$18324$8fcfb975@news.wanadoo.fr...
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
1131545605.506808.151110@g44g2000cwa.googlegroups.com...
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Bonjour DC,
Écoute, maintenant que tu as identifier ton problème, tu devrais être
capable de le résoudre.
Quand tu changes le nom du Classeur "Facturation" pour "Un nom de client",
les lignes de code où est inscrit "Facturation" n'est
plus exact et cela provoque l'erreur que tu décrivais plutôt.
Si le code est situé dans le classeur Facturation.xls, tu peux faire ceci
:
Déclare une variable de type String et affecte lui le nom du classeur. Tu
remplaces par la suite le nom du Classeur Facturation.xls
dans ton code par la variable, à titre d'exemple :
Dim NomClasseur As String
NomClasseur = ThisWorkbook.Name
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ttc].Value
Salutations!
"DC" a écrit dans le message de news:
4373a677$0$6684$
Bonsoir à tous.............................Bonsoir michdenis,
Merci...!!
Pour faire une facture au client,
Au début, j'ai 2 classeurs d'ouvert, "Code-9" + "Facturation"
"Code-9" est un classeur de base de données + les modules de macros,
"Facturation" est un classeur, disons pour modéle de factures, et je
travaille la facture sur ce classeur, en prenant des libellés et des
formules sur le classeur "Code-9" au moyen de Copier/Coller éxécuté avec
des
macros,
Quand la facture est terminée, j'ouvre un troisième classeur "Récap" ou
par
la fameuse macro, je vais inscrire quelques paramètres
(date+nom+numèro+etc...) de la dite facture qui s'appelle toujours
"Facturation",
Ensuite je retourne sur le classeur "facturation" pour donner le nom du
client à ce classeur et je le sauvegarde sous le "nom du client"
Exécuté de cette façon, tout se passe très bien, mais au jourd'hui, l'on
me
demande de pouvoir sauvegarder et changer le "nomdu client", avant d'aller
inscrire les paramètres sur le classeur récap, d'ou la disparation du nom
"Facturation" et l'origine du défaut,
Voilà, je pense avoir été clair.....enfin j'espère...!!
Voici la section de code qui pose problème
'-------------------------------------Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Salutations!........bonne soirée.......encore Merci...!!.......DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un
bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Bonjour DC,
Écoute, maintenant que tu as identifier ton problème, tu devrais être
capable de le résoudre.
Quand tu changes le nom du Classeur "Facturation" pour "Un nom de client",
les lignes de code où est inscrit "Facturation" n'est
plus exact et cela provoque l'erreur que tu décrivais plutôt.
Si le code est situé dans le classeur Facturation.xls, tu peux faire ceci
:
Déclare une variable de type String et affecte lui le nom du classeur. Tu
remplaces par la suite le nom du Classeur Facturation.xls
dans ton code par la variable, à titre d'exemple :
Dim NomClasseur As String
NomClasseur = ThisWorkbook.Name
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ttc].Value
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
4373a677$0$6684$8fcfb975@news.wanadoo.fr...
Bonsoir à tous.............................Bonsoir michdenis,
Merci...!!
Pour faire une facture au client,
Au début, j'ai 2 classeurs d'ouvert, "Code-9" + "Facturation"
"Code-9" est un classeur de base de données + les modules de macros,
"Facturation" est un classeur, disons pour modéle de factures, et je
travaille la facture sur ce classeur, en prenant des libellés et des
formules sur le classeur "Code-9" au moyen de Copier/Coller éxécuté avec
des
macros,
Quand la facture est terminée, j'ouvre un troisième classeur "Récap" ou
par
la fameuse macro, je vais inscrire quelques paramètres
(date+nom+numèro+etc...) de la dite facture qui s'appelle toujours
"Facturation",
Ensuite je retourne sur le classeur "facturation" pour donner le nom du
client à ce classeur et je le sauvegarde sous le "nom du client"
Exécuté de cette façon, tout se passe très bien, mais au jourd'hui, l'on
me
demande de pouvoir sauvegarder et changer le "nomdu client", avant d'aller
inscrire les paramètres sur le classeur récap, d'ou la disparation du nom
"Facturation" et l'origine du défaut,
Voilà, je pense avoir été clair.....enfin j'espère...!!
Voici la section de code qui pose problème
'-------------------------------------
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Salutations!........bonne soirée.......encore Merci...!!.......DC
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23FEM7Lf5FHA.1604@TK2MSFTNGP10.phx.gbl...
Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
437307a0$0$19706$8fcfb975@news.wanadoo.fr...
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23DGEjoW5FHA.1416@TK2MSFTNGP09.phx.gbl...
Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
43722f5a$0$18324$8fcfb975@news.wanadoo.fr...
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un
bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
1131545605.506808.151110@g44g2000cwa.googlegroups.com...
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+
Bonjour DC,
Écoute, maintenant que tu as identifier ton problème, tu devrais être
capable de le résoudre.
Quand tu changes le nom du Classeur "Facturation" pour "Un nom de client",
les lignes de code où est inscrit "Facturation" n'est
plus exact et cela provoque l'erreur que tu décrivais plutôt.
Si le code est situé dans le classeur Facturation.xls, tu peux faire ceci
:
Déclare une variable de type String et affecte lui le nom du classeur. Tu
remplaces par la suite le nom du Classeur Facturation.xls
dans ton code par la variable, à titre d'exemple :
Dim NomClasseur As String
NomClasseur = ThisWorkbook.Name
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks(NomClasseur).Sheets("Feuil3").[ttc].Value
Salutations!
"DC" a écrit dans le message de news:
4373a677$0$6684$
Bonsoir à tous.............................Bonsoir michdenis,
Merci...!!
Pour faire une facture au client,
Au début, j'ai 2 classeurs d'ouvert, "Code-9" + "Facturation"
"Code-9" est un classeur de base de données + les modules de macros,
"Facturation" est un classeur, disons pour modéle de factures, et je
travaille la facture sur ce classeur, en prenant des libellés et des
formules sur le classeur "Code-9" au moyen de Copier/Coller éxécuté avec
des
macros,
Quand la facture est terminée, j'ouvre un troisième classeur "Récap" ou
par
la fameuse macro, je vais inscrire quelques paramètres
(date+nom+numèro+etc...) de la dite facture qui s'appelle toujours
"Facturation",
Ensuite je retourne sur le classeur "facturation" pour donner le nom du
client à ce classeur et je le sauvegarde sous le "nom du client"
Exécuté de cette façon, tout se passe très bien, mais au jourd'hui, l'on
me
demande de pouvoir sauvegarder et changer le "nomdu client", avant d'aller
inscrire les paramètres sur le classeur récap, d'ou la disparation du nom
"Facturation" et l'origine du défaut,
Voilà, je pense avoir été clair.....enfin j'espère...!!
Voici la section de code qui pose problème
'-------------------------------------Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'-----------------------------------------------------
Salutations!........bonne soirée.......encore Merci...!!.......DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
Une solution, c'est d'expliquer clairement ce que tu tentes de faire !
Tu as 3 classeurs ouverts à moment où tu exécutes ces opérations ? Dans
quel classeur est écrite la macro ? Quel est le rôle des 2
autres ? Quel est le but final de l'opération (seulement la section où il
y a problème !) ?
Si tu peux identifier la ligne de code qui est problématique, copie là
dans ton message.
Salutations!
"DC" a écrit dans le message de news:
437307a0$0$19706$
Bonjour à tous............................Bonjour michdenis,
Merci à toi...!!...
(si j'ai bonne mémoire, cette macro me vient de toi michdenis)....
Que veux-tu dire, par il faudrait que je fasses une vérification plus
serré,
J'ai, je pense bien compris, que c'est le changement de nom, qui pose
problème,
Mais, je m'imaginais quand changeant la tournure du morceau de code
concerné
dans la procédure, que l'on pourrait remédier à ce probléme posé,
Et tu sais, moi je suis incapable d'y parvenir sans aide, je fais parti
des
non initiés, qui avancent à petits pas,
Salutations!.....bonne journée........encore Merci...!!........DC
"michdenis" a écrit dans le message de news:
%Bonjour DC,
| change pas le nom du classeur "Facturation" par le "nom du client",
Bien c'est justement cela, après avoir changer son nom, ton code,
continue
d'utilise en dur le nom de "Facturation" comme nom du
classeur et ce dernier n'existe plus puisqu'il a changé de nom !
Il faudrait probablement que tu fasses une vérification plus serré !
Salutations!
"DC" a écrit dans le message de news:
43722f5a$0$18324$
Bonsoir à tous.....Bonsoir anonymousA...et...michdenis...et...Oliv',
Merci...!!........à tous,
Je ne pense pas qu'il puisse y avoir une erreur, puisque tant que je ne
change pas le nom du classeur "Facturation" par le "nom du client", la
procédure fonctionne trés bien, (michdenis)
par contre, j'ai appliqué ta nouvelle écriture (anonymousA) et c'est
toujours refusée,
Une question Messieurs, ne peut-on pas avoir autre chose que le nom du
classeur comme référence...(nom de feuil3....réf. de code feuille...ou
autre....) qui eux ne changeraient pas, ou bien un principe relatif qui
accepterait n'importe quel nom,
A savoir, qu'au moment du lancement de la macro, il y à toujours 3
classeurs
d'ouvert soit : "Code-9" + "Facturation transformé en Nom du client" +
"Récap" et la macro qui se trouve dans "Code-9" est activée par un
bouton
dans "Récap"
La procédure ci-jointe fonctionne, tant que je ne change pas le nom
"Facturation" par le "nom du client"
'---------------------------------
Public mois
Sub Récapit()
Dim Z As Integer, Question As String
Workbooks("Récap.xls").Activate
Range("A65536").End(xlUp).Offset(1, 0).Activate
For i = 1 To Workbooks("Récap.xls").Sheets.Count
X = X & i & "...." & Workbooks("Récap.xls").Sheets(i).Name & Chr(10)
Next
mois = Val(InputBox("Feuilles disponibles" & Chr(10) & Chr(10) & X &
Chr(10)
& "Entrez le numéro de la feuille de destination", "Sélection", mois))
If mois < 1 Or mois > i - 1 Then Exit Sub
derlg = Workbooks("Récap.xls").Sheets(mois).Range("A65536").End(3).Row +
1
Workbooks("Récap.xls").Sheets(mois).Range("a" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Numéro].Value
Workbooks("Récap.xls").Sheets(mois).Range("c" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Sit.].Value
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Nom].Value
Workbooks("Récap.xls").Sheets(mois).Range("b" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[Date].Value
Workbooks("Récap.xls").Sheets(mois).Range("E" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ht].Value
Workbooks("Récap.xls").Sheets(mois).Range("h" & derlg) = _
Workbooks("Facturation.xls").Sheets("Feuil3").[ttc].Value
'*************
Application.ScreenUpdating = False
Windows("Récap.xls").Activate
Sheets(mois).Activate
y = Int((Range("H" & derlg) / Range("E" & derlg) - 1) * 100)
If y = 19 Then
Range("F" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("G" & derlg) = ""
ElseIf y = 5 Then
Range("G" & derlg) = Range("H" & derlg) - Range("E" & derlg)
Range("F" & derlg) = ""
Else
Range("G" & derlg) = ""
Range("F" & derlg) = ""
MsgBox "TVA de " & y & "% inconnue"
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Windows("Récap.xls").Activate
End Sub
'---------------------------------------------------
Salutations!............encore un grand Merci...!!........bonne soirée!
DC
"anonymousA" a écrit dans le message de news:
Dans ces conditions, il faut oublier Thisworkbook. Si tu as sauvegardé
le classeur facturation à un moment donné, tu peux en récupérer le
nom (il a bien fallu que tu le trouves quelquepart) et au lieu
d'écrire Workbooks("Facturation.xls") , écrire
nomclass="nomduclient" &".xls"
Workbooks("Récap.xls").Sheets(mois).Range("d" & derlg) = _
Workbooks(nomduclient).Sheets("Feuil3").[Nom].Value
A+