Sélectionner une feuille et y insérer des données en fonction d'un critère
13 réponses
zimou
Bonjour et meilleurs voeux pour l'ann=E9e 2008,
voil=E0 mons pbme.
j'ai une BD sur une feuille nomm=E9e "2007", maintenant nous somme en
2008, j'ai inser=E9 une feuille nomm=E9e "2008", et comme c'est le d=E9but
de l'ann=E9e j'ai des donn=E9es de l'ann=E9e 2007 qui sont donc =E0 ins=E9re=
r
dans la feuille "2007" et en m=EAme temps les donn=E9es 2008 commencent =E0
venir et je veux les ins=E9r=E9s dans "2008" bien s=FBr.
j'ai rajout=E9 le code suivant:
le crit=E8re choisi est : Z_Fab_date qu'est la date de fabrication.
If Z_Fab_date > ("01/01/2008") Then
ActiveWorkbook.Worksheets("2008").Activate
Worksheets("2008").Select
End If
avec ce bout de code j'arrive =E0 s=E9lectionner la feuille "2008", mais
les donn=E9es ne s'ajoutent ni =E0 la feuille 2008 ni =E0 2007.
ce que je veux, c'est d'ins=E9rer les donn=E9es 2008 dans la feuille 2008
et si elles sont de l'ann=E9e 2007, qu'elles soient ins=E9rer dans la
feuille 2007. sans aucune intervention de la personne qui fait la
saisie. tout avec VBA.
ci dessous le code entier.
merci d'avance.
Private Sub Ajouter_Click()
Dim Ligne As Long
Ligne =3D Range("A65536").End(xlUp).Row + 1
If Z_Fab_date > ("01/01/2008") Then
ActiveWorkbook.Worksheets("2008").Activate
Worksheets("2008").Select
End If
cette fois j'ai fais le test et ça marche, même hière ça marchait et je me suis pas rendu compte, car sur la feuille 2007, je suis à la ligne 70 et sur la 2008 à la ligne 2, mais la Userforme ajoutait sur la feuille 2008 à la ligne 71 comme si c'atait la feuille 2007, mais ce n'est pas grave il ma falu supprimer les lignes vides et voilà. merci Bruno merci encore pour la patience. amicalement
Dim Ligne As Integer With Sheets(CStr(Year(Z_Fab_date.Text))) .Select Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With
au début j'ai rajouté .Select A savoir qu'il est inutile de selectionner la feuille pour écrire. une chose encore tes onglets doivent bien être nommés 2007 ou 2008 ou plus CStr(Year(Z_Fab_date.Text)) renvoie seulement l'année de la date en valeur texte. Si tu ne là pas fait ceci verifie que la date rentrée soit correcte
Private Sub Z_Fab_date_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Z_Fab_date.Value = "" Then Exit Sub If IsDate(Z_Fab_date.Value) = False Then MsgBox "Rentrez une Date valide" Cancel = True End If End Sub
Voilà Youky
"zimou" a écrit dans le message de news: %
Excuse moi du retard mais c'est Dimanche. Je ne peux pas ouvrir le fichier de cjoint . ......Erreur! ! !dans le lien Ce n'est pas grave, on va faire sans... Pour que cela fonctionne la macro doit connaitre la valeur de Z_Fab_date Ca y est je viens de comprendre que Z_Fab_date est un textbox. . ..euréka Essaye ceci si c'est bien un TextBox Youky
Dim Ligne As Integer With Sheets(CStr(Year(Z_Fab_date.Text))) Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With
"zimou" a écrit dans le message de news:
UTILISER 31 COMME PW merci
ci joint le fichier excel: http://cjoint.com/?bgmXXllUTg merci
oui la variable 'Z_Fab_date = "01/01/2008" est plac?e au d?but du code et je n'ai aucun m?ssage d'erreur. merci
Tu es sur que la variable Z_Fab_date est mise ? jour En d?but de macro essai de la lire MsgBox Z_Fab_date dans ma macro 'Z_Fab_date = "01/01/2008" il y a une apostrophe donc la ligne est saut?e Youky
"zimou" a ?crit dans le message de news:
Merci pour l'aide, mais ce code ne fait pas mieux, je continu ? ins?rer dans la feuille 2007 merci
ci dessous le code complet, peut ?tre j'ai male copier
ca doit le faire sans selectionner la feuille remarque: Attention j'ai mis des points . Youky "zimou" a ?crit dans le message de news:
Bonjour et meilleurs voeux pour l'ann?e 2008, voil? mons pbme. j'ai une BD sur une feuille nomm?e "2007", maintenant nous somme en 2008, j'ai inser? une feuille nomm?e "2008", et comme c'est le d?but de l'ann?e j'ai des donn?es de l'ann?e 2007 qui sont donc ? ins?rer dans la feuille "2007" et en m?me temps les donn?es 2008 commencent ? venir et je veux les ins?r?s dans "2008" bien s?r. j'ai rajout? le code suivant: le crit?re choisi est : Z_Fab_date qu'est la date de fabrication.
If Z_Fab_date > ("01/01/2008") Then ActiveWorkbook.Worksheets("2008").Activate Worksheets("2008").Select End If
avec ce bout de code j'arrive ? s?lectionner la feuille "2008", mais les donn?es ne s'ajoutent ni ? la feuille 2008 ni ? 2007.
ce que je veux, c'est d'ins?rer les donn?es 2008 dans la feuille 2008 et si elles sont de l'ann?e 2007, qu'elles soient ins?rer dans la feuille 2007. sans aucune intervention de la personne qui fait la saisie. tout avec VBA.
ci dessous le code entier. merci d'avance. Private Sub Ajouter_Click()
Dim Ligne As Long
Ligne = Range("A65536").End(xlUp).Row + 1
If Z_Fab_date > ("01/01/2008") Then ActiveWorkbook.Worksheets("2008").Activate Worksheets("2008").Select End If
mais j'ai déjà testé et ça ne marche pas, les données sont insérées à la feuille "2007" et la page "2008" n'est même pas selectionnée. amicalement bonne nuit
cette fois j'ai fais le test et ça marche,
même hière ça marchait et je me suis pas rendu compte, car sur la
feuille 2007, je suis à la ligne 70 et sur la 2008 à la ligne 2, mais la
Userforme ajoutait sur la feuille 2008 à la ligne 71 comme si c'atait la
feuille 2007, mais ce n'est pas grave il ma falu supprimer les lignes
vides et voilà.
merci Bruno
merci encore pour la patience.
amicalement
Dim Ligne As Integer
With Sheets(CStr(Year(Z_Fab_date.Text)))
.Select
Ligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne) = Nlot_Mp.Value
.Range("B" & Ligne) = Z_N_Lot.Value
.Range("C" & Ligne) = CDate(Z_Fab_date.Value)
.Range("D" & Ligne) = CDate(Z_Date_Lib.Value)
.Range("E" & Ligne) = Z_Quantite.Value
.Range("G" & Ligne) = Z_delitement.Value
.Range("F" & Ligne) = Z_Dissolution.Value
.Range("H" & Ligne) = Z_Humidite.Value
.Range("I" & Ligne) = Z_PM75.Value
.Range("J" & Ligne) = Z_PM_n7.Value
.Range("K" & Ligne) = Z_dos.Value
End With
au début j'ai rajouté .Select
A savoir qu'il est inutile de selectionner la feuille pour écrire.
une chose encore tes onglets doivent bien être nommés 2007 ou 2008 ou plus
CStr(Year(Z_Fab_date.Text)) renvoie seulement l'année de la date en valeur
texte.
Si tu ne là pas fait ceci verifie que la date rentrée soit correcte
Private Sub Z_Fab_date_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Z_Fab_date.Value = "" Then Exit Sub
If IsDate(Z_Fab_date.Value) = False Then
MsgBox "Rentrez une Date valide"
Cancel = True
End If
End Sub
Voilà
Youky
"zimou" <zimou_2005@yahoo.fr> a écrit dans le message de news:
%23IswdkKUIHA.2000@TK2MSFTNGP05.phx.gbl...
Excuse moi du retard mais c'est Dimanche.
Je ne peux pas ouvrir le fichier de cjoint . ......Erreur! ! !dans le
lien
Ce n'est pas grave, on va faire sans...
Pour que cela fonctionne la macro doit connaitre la valeur de Z_Fab_date
Ca y est je viens de comprendre que Z_Fab_date est un textbox. . ..euréka
Essaye ceci si c'est bien un TextBox
Youky
Dim Ligne As Integer
With Sheets(CStr(Year(Z_Fab_date.Text)))
Ligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne) = Nlot_Mp.Value
.Range("B" & Ligne) = Z_N_Lot.Value
.Range("C" & Ligne) = CDate(Z_Fab_date.Value)
.Range("D" & Ligne) = CDate(Z_Date_Lib.Value)
.Range("E" & Ligne) = Z_Quantite.Value
.Range("G" & Ligne) = Z_delitement.Value
.Range("F" & Ligne) = Z_Dissolution.Value
.Range("H" & Ligne) = Z_Humidite.Value
.Range("I" & Ligne) = Z_PM75.Value
.Range("J" & Ligne) = Z_PM_n7.Value
.Range("K" & Ligne) = Z_dos.Value
End With
"zimou" <mourad.touati@gmail.com> a écrit dans le message de news:
40915ee9-e82a-4476-a48d-308819c31bd6@m77g2000hsc.googlegroups.com...
UTILISER 31 COMME PW
merci
ci joint le fichier excel: http://cjoint.com/?bgmXXllUTg
merci
oui la variable 'Z_Fab_date = "01/01/2008" est plac?e au d?but du code
et je n'ai aucun m?ssage d'erreur.
merci
Tu es sur que la variable Z_Fab_date est mise ? jour
En d?but de macro essai de la lire
MsgBox Z_Fab_date
dans ma macro
'Z_Fab_date = "01/01/2008" il y a une apostrophe donc la ligne est
saut?e
Youky
"zimou" <mourad.touati@gmail.com> a ?crit dans le message de news:
2e0f495d-45bc-498b-bd77-ed800ddfba0c@l6g2000prm.googlegroups.com...
Merci pour l'aide,
mais ce code ne fait pas mieux, je continu ? ins?rer dans la feuille
2007
merci
ci dessous le code complet, peut ?tre j'ai male copier
ca doit le faire sans selectionner la feuille
remarque: Attention j'ai mis des points .
Youky
"zimou" <mourad.touati@gmail.com> a ?crit dans le message de news:
19bd79ef-2462-4e76-a924-787c716dde15@d70g2000hsb.googlegroups.com...
Bonjour et meilleurs voeux pour l'ann?e 2008,
voil? mons pbme.
j'ai une BD sur une feuille nomm?e "2007", maintenant nous somme en
2008, j'ai inser? une feuille nomm?e "2008", et comme c'est le d?but
de l'ann?e j'ai des donn?es de l'ann?e 2007 qui sont donc ? ins?rer
dans la feuille "2007" et en m?me temps les donn?es 2008 commencent ?
venir et je veux les ins?r?s dans "2008" bien s?r.
j'ai rajout? le code suivant:
le crit?re choisi est : Z_Fab_date qu'est la date de fabrication.
If Z_Fab_date > ("01/01/2008") Then
ActiveWorkbook.Worksheets("2008").Activate
Worksheets("2008").Select
End If
avec ce bout de code j'arrive ? s?lectionner la feuille "2008", mais
les donn?es ne s'ajoutent ni ? la feuille 2008 ni ? 2007.
ce que je veux, c'est d'ins?rer les donn?es 2008 dans la feuille 2008
et si elles sont de l'ann?e 2007, qu'elles soient ins?rer dans la
feuille 2007. sans aucune intervention de la personne qui fait la
saisie. tout avec VBA.
ci dessous le code entier.
merci d'avance.
Private Sub Ajouter_Click()
Dim Ligne As Long
Ligne = Range("A65536").End(xlUp).Row + 1
If Z_Fab_date > ("01/01/2008") Then
ActiveWorkbook.Worksheets("2008").Activate
Worksheets("2008").Select
End If
mais j'ai déjà testé et ça ne marche pas, les données sont insérées à la
feuille "2007" et la page "2008" n'est même pas selectionnée.
amicalement
bonne nuit
cette fois j'ai fais le test et ça marche, même hière ça marchait et je me suis pas rendu compte, car sur la feuille 2007, je suis à la ligne 70 et sur la 2008 à la ligne 2, mais la Userforme ajoutait sur la feuille 2008 à la ligne 71 comme si c'atait la feuille 2007, mais ce n'est pas grave il ma falu supprimer les lignes vides et voilà. merci Bruno merci encore pour la patience. amicalement
Dim Ligne As Integer With Sheets(CStr(Year(Z_Fab_date.Text))) .Select Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With
au début j'ai rajouté .Select A savoir qu'il est inutile de selectionner la feuille pour écrire. une chose encore tes onglets doivent bien être nommés 2007 ou 2008 ou plus CStr(Year(Z_Fab_date.Text)) renvoie seulement l'année de la date en valeur texte. Si tu ne là pas fait ceci verifie que la date rentrée soit correcte
Private Sub Z_Fab_date_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Z_Fab_date.Value = "" Then Exit Sub If IsDate(Z_Fab_date.Value) = False Then MsgBox "Rentrez une Date valide" Cancel = True End If End Sub
Voilà Youky
"zimou" a écrit dans le message de news: %
Excuse moi du retard mais c'est Dimanche. Je ne peux pas ouvrir le fichier de cjoint . ......Erreur! ! !dans le lien Ce n'est pas grave, on va faire sans... Pour que cela fonctionne la macro doit connaitre la valeur de Z_Fab_date Ca y est je viens de comprendre que Z_Fab_date est un textbox. . ..euréka Essaye ceci si c'est bien un TextBox Youky
Dim Ligne As Integer With Sheets(CStr(Year(Z_Fab_date.Text))) Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With
"zimou" a écrit dans le message de news:
UTILISER 31 COMME PW merci
ci joint le fichier excel: http://cjoint.com/?bgmXXllUTg merci
oui la variable 'Z_Fab_date = "01/01/2008" est plac?e au d?but du code et je n'ai aucun m?ssage d'erreur. merci
Tu es sur que la variable Z_Fab_date est mise ? jour En d?but de macro essai de la lire MsgBox Z_Fab_date dans ma macro 'Z_Fab_date = "01/01/2008" il y a une apostrophe donc la ligne est saut?e Youky
"zimou" a ?crit dans le message de news:
Merci pour l'aide, mais ce code ne fait pas mieux, je continu ? ins?rer dans la feuille 2007 merci
ci dessous le code complet, peut ?tre j'ai male copier
ca doit le faire sans selectionner la feuille remarque: Attention j'ai mis des points . Youky "zimou" a ?crit dans le message de news:
Bonjour et meilleurs voeux pour l'ann?e 2008, voil? mons pbme. j'ai une BD sur une feuille nomm?e "2007", maintenant nous somme en 2008, j'ai inser? une feuille nomm?e "2008", et comme c'est le d?but de l'ann?e j'ai des donn?es de l'ann?e 2007 qui sont donc ? ins?rer dans la feuille "2007" et en m?me temps les donn?es 2008 commencent ? venir et je veux les ins?r?s dans "2008" bien s?r. j'ai rajout? le code suivant: le crit?re choisi est : Z_Fab_date qu'est la date de fabrication.
If Z_Fab_date > ("01/01/2008") Then ActiveWorkbook.Worksheets("2008").Activate Worksheets("2008").Select End If
avec ce bout de code j'arrive ? s?lectionner la feuille "2008", mais les donn?es ne s'ajoutent ni ? la feuille 2008 ni ? 2007.
ce que je veux, c'est d'ins?rer les donn?es 2008 dans la feuille 2008 et si elles sont de l'ann?e 2007, qu'elles soient ins?rer dans la feuille 2007. sans aucune intervention de la personne qui fait la saisie. tout avec VBA.
ci dessous le code entier. merci d'avance. Private Sub Ajouter_Click()
Dim Ligne As Long
Ligne = Range("A65536").End(xlUp).Row + 1
If Z_Fab_date > ("01/01/2008") Then ActiveWorkbook.Worksheets("2008").Activate Worksheets("2008").Select End If
mais j'ai déjà testé et ça ne marche pas, les données sont insérées à la feuille "2007" et la page "2008" n'est même pas selectionnée. amicalement bonne nuit
zimou
Merci PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code qui marche aussi. merci encore à vous deux. amicalement
Bonjour,
Essayez le code ci-dessous
ATTENTION 1) les instructions suivantes utilisent une conversion provoquée (Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib) n'est pas renseigné le programme plantera. C'est comme si on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est absolument indispensable 3) si l'année de la date entrée (Z_Fab_date) est différente de 2007 ou 2008 le programme plantera. On fera référence à une feuille inexistante. Prévoir un traitement d'erreurs.
'******************* Private Sub Ajouter_Click() Dim Ligne As Long Dim S As Worksheet Dim Annee As String Annee = Year(CDate(Z_Fab_date)) Set S = ThisWorkbook.Sheets(Annee) With S Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With End Sub '*******************
Cordialement.
PMO Patrick Morange
Merci
PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code
qui marche aussi.
merci encore à vous deux.
amicalement
Bonjour,
Essayez le code ci-dessous
ATTENTION
1) les instructions suivantes utilisent une conversion provoquée
(Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib)
n'est pas renseigné le programme plantera. C'est comme si
on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est
absolument indispensable
3) si l'année de la date entrée (Z_Fab_date) est différente
de 2007 ou 2008 le programme plantera. On fera référence
à une feuille inexistante. Prévoir un traitement d'erreurs.
'*******************
Private Sub Ajouter_Click()
Dim Ligne As Long
Dim S As Worksheet
Dim Annee As String
Annee = Year(CDate(Z_Fab_date))
Set S = ThisWorkbook.Sheets(Annee)
With S
Ligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne) = Nlot_Mp.Value
.Range("B" & Ligne) = Z_N_Lot.Value
.Range("C" & Ligne) = CDate(Z_Fab_date.Value)
.Range("D" & Ligne) = CDate(Z_Date_Lib.Value)
.Range("E" & Ligne) = Z_Quantite.Value
.Range("G" & Ligne) = Z_delitement.Value
.Range("F" & Ligne) = Z_Dissolution.Value
.Range("H" & Ligne) = Z_Humidite.Value
.Range("I" & Ligne) = Z_PM75.Value
.Range("J" & Ligne) = Z_PM_n7.Value
.Range("K" & Ligne) = Z_dos.Value
End With
End Sub
'*******************
Merci PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code qui marche aussi. merci encore à vous deux. amicalement
Bonjour,
Essayez le code ci-dessous
ATTENTION 1) les instructions suivantes utilisent une conversion provoquée (Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib) n'est pas renseigné le programme plantera. C'est comme si on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est absolument indispensable 3) si l'année de la date entrée (Z_Fab_date) est différente de 2007 ou 2008 le programme plantera. On fera référence à une feuille inexistante. Prévoir un traitement d'erreurs.
'******************* Private Sub Ajouter_Click() Dim Ligne As Long Dim S As Worksheet Dim Annee As String Annee = Year(CDate(Z_Fab_date)) Set S = ThisWorkbook.Sheets(Annee) With S Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With End Sub '*******************
Cordialement.
PMO Patrick Morange
zimou
Merci PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code qui marche aussi. merci encore à vous deux. amicalement zimou
Bonjour,
Essayez le code ci-dessous
ATTENTION 1) les instructions suivantes utilisent une conversion provoquée (Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib) n'est pas renseigné le programme plantera. C'est comme si on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est absolument indispensable 3) si l'année de la date entrée (Z_Fab_date) est différente de 2007 ou 2008 le programme plantera. On fera référence à une feuille inexistante. Prévoir un traitement d'erreurs.
'******************* Private Sub Ajouter_Click() Dim Ligne As Long Dim S As Worksheet Dim Annee As String Annee = Year(CDate(Z_Fab_date)) Set S = ThisWorkbook.Sheets(Annee) With S Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With End Sub '*******************
Cordialement.
PMO Patrick Morange
Merci
PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code
qui marche aussi.
merci encore à vous deux.
amicalement
zimou
Bonjour,
Essayez le code ci-dessous
ATTENTION
1) les instructions suivantes utilisent une conversion provoquée
(Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib)
n'est pas renseigné le programme plantera. C'est comme si
on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est
absolument indispensable
3) si l'année de la date entrée (Z_Fab_date) est différente
de 2007 ou 2008 le programme plantera. On fera référence
à une feuille inexistante. Prévoir un traitement d'erreurs.
'*******************
Private Sub Ajouter_Click()
Dim Ligne As Long
Dim S As Worksheet
Dim Annee As String
Annee = Year(CDate(Z_Fab_date))
Set S = ThisWorkbook.Sheets(Annee)
With S
Ligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne) = Nlot_Mp.Value
.Range("B" & Ligne) = Z_N_Lot.Value
.Range("C" & Ligne) = CDate(Z_Fab_date.Value)
.Range("D" & Ligne) = CDate(Z_Date_Lib.Value)
.Range("E" & Ligne) = Z_Quantite.Value
.Range("G" & Ligne) = Z_delitement.Value
.Range("F" & Ligne) = Z_Dissolution.Value
.Range("H" & Ligne) = Z_Humidite.Value
.Range("I" & Ligne) = Z_PM75.Value
.Range("J" & Ligne) = Z_PM_n7.Value
.Range("K" & Ligne) = Z_dos.Value
End With
End Sub
'*******************
Merci PMO pour ton aide qui marche, & il y a aussi Youky qui ma donné un code qui marche aussi. merci encore à vous deux. amicalement zimou
Bonjour,
Essayez le code ci-dessous
ATTENTION 1) les instructions suivantes utilisent une conversion provoquée (Cdate). Si l'un des champs (Z_Fab_date OU Z_Date_Lib) n'est pas renseigné le programme plantera. C'est comme si on avait l'instruction Cdate( ) "CDate de RIEN"
2) le POINT ( . ) devant les instructions Range(xxx…) est absolument indispensable 3) si l'année de la date entrée (Z_Fab_date) est différente de 2007 ou 2008 le programme plantera. On fera référence à une feuille inexistante. Prévoir un traitement d'erreurs.
'******************* Private Sub Ajouter_Click() Dim Ligne As Long Dim S As Worksheet Dim Annee As String Annee = Year(CDate(Z_Fab_date)) Set S = ThisWorkbook.Sheets(Annee) With S Ligne = .Range("A65536").End(xlUp).Row + 1 .Range("A" & Ligne) = Nlot_Mp.Value .Range("B" & Ligne) = Z_N_Lot.Value .Range("C" & Ligne) = CDate(Z_Fab_date.Value) .Range("D" & Ligne) = CDate(Z_Date_Lib.Value) .Range("E" & Ligne) = Z_Quantite.Value .Range("G" & Ligne) = Z_delitement.Value .Range("F" & Ligne) = Z_Dissolution.Value .Range("H" & Ligne) = Z_Humidite.Value .Range("I" & Ligne) = Z_PM75.Value .Range("J" & Ligne) = Z_PM_n7.Value .Range("K" & Ligne) = Z_dos.Value End With End Sub '*******************