Enregistrer 1 macro ss 1nom de feuille précis [Résolu/Fermé]

Signaler
Messages postés
32
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2008
-
Messages postés
32
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2008
-
Bonjour,

je suis en train d'ecrire une macro, celle ci est presque finie, il me reste juste a faire que ce que
je remplis dans le formulaire s'enregistre dans la page correspondant au nom du système.

je m'explique, si je choisis le systeme "C3U", je voudrais que cela s'enregistre dans la feuille du
nom "C3U", idem si je choisis le système "SSLNG" a enregistrer dans la feuille SSLNG

Voila un imprime écran du formulaire

[url=http://www.zimagez.com/zimage/1618fd9a5d7d01993f065100813d836c8.php][img]http://www.zimagez.com/miniature/1618fd9a5d7d01993f065100813d836c8.bmp[/img][/url]

et voici le code que j'ai mis en place pour le moment
Private Sub Annuler_Click()

'efface les champs
Commentaires = ""
dateinstall = ""
datelivraison = ""
Daterecep = ""
datevalid = ""
reflivraison = ""
Refmedia = ""
Systeme = ""
Version = ""

End Sub

Private Sub ComboBox1_Enter()

ComboBox1.AddItem "C3U"
ComboBox1.AddItem "CCS"
ComboBox1.AddItem "CGN"
ComboBox1.AddItem "CGRM"
ComboBox1.AddItem "CGSEC"
ComboBox1.AddItem "GLC"
ComboBox1.AddItem "PSM"
ComboBox1.AddItem "REMO"
ComboBox1.AddItem "RIS"
ComboBox1.AddItem "SSLNG"

End Sub

Private Sub Enregistrer_Click()

'Vérification que tous les champs soient tous bien remplis afin de pouvoir effectuer le calcul et remplir le tableau
Select Case ""
    Case Commentaires
        MsgBox "Champ ''Commentaires'' vide", vbExclamation, "CHAMPS VIDE"
    Case dateinstall
        MsgBox "Champ ''dateinstall'' vide", vbExclamation, "CHAMPS VIDE"
    Case datelivraison
        MsgBox "Champ ''datelivraison'' vide", vbExclamation, "CHAMPS VIDE"
    Case Daterecep
        MsgBox "Champ ''Daterecep'' vide", vbExclamation, "CHAMPS VIDE"
    Case datevalid
        MsgBox "Champ ''datevalid'' vide", vbExclamation, "CHAMPS VIDE"
    Case reflivraison
        MsgBox "Champ ''reflivraison'' vide", vbExclamation, "CHAMPS VIDE"
    Case Refmedia
        MsgBox "Champ ''Refmedia'' vide", vbExclamation, "CHAMPS VIDE"
    Case Version
        MsgBox "Champ ''Version'' vide", vbExclamation, "CHAMPS VIDE"
End Select

'message sur le contenu saisie
MsgBox "Il est " & Time & Chr(10) & Chr(10) & "Vous avez saisi les informations suivantes " & Chr(10) & Chr(10) & " Systeme : " & Systeme & Chr(10) & " Version : " & Version & Chr(10) & " Date de réception officielle sur CSL : " & Daterecep & Chr(10) & " Référence des médias reçus : " & Refmedia & Chr(10) & " Date de validation: " & datevalid & Chr(10) & " Date de livraison vers le site : " & datelivraison & Chr(10) & " Référence livraison MOI : " & reflivraison & Chr(10) & " Date d'installation sur site OPS : " & dateinstall & Chr(10) & " Commentaires : " & Commentaires, vbInformation, "Informations saisies"

'création du tableau
Range("A1") = "Systeme"
Range("B1") = "Version"
Range("C1") = "Date de réception officielle sur CSL"
Range("D1") = "Référence des médias reçus"
Range("E1") = "Date de validation"
Range("F1") = "Date de livraison vers le site"
Range("G1") = "Référence livraison MOI"
Range("H1") = "Date d'installation sur site OPS"
Range("I1") = "Commentaires"

'Se mettre à la fin du tableau
If Range("A1").Offset(1, 0) <> "" And Range("B1").Offset(1, 0) <> "" And Range("C1").Offset(1, 0) <> "" And Range("D1").Offset(1, 0) <> "" And Range("E1").Offset(1, 0) <> "" And Range("F1").Offset(1, 0) <> "" And Range("G1").Offset(1, 0) <> "" And Range("H1").Offset(1, 0) <> "" Then

    Range("A1").End(xlDown).Offset(1, 0) = Systeme
    Range("B1").End(xlDown).Offset(1, 0) = Version
    Range("C1").End(xlDown).Offset(1, 0) = Daterecep
    Range("D1").End(xlDown).Offset(1, 0) = Refmedia
    Range("E1").End(xlDown).Offset(1, 0) = datevalid
    Range("F1").End(xlDown).Offset(1, 0) = datelivraison
    Range("G1").End(xlDown).Offset(1, 0) = reflivraison
    Range("H1").End(xlDown).Offset(1, 0) = dateinstall
    Range("I1").End(xlDown).Offset(1, 0) = Commentaires
    
Else
    'Remplissage d'un tableau vierge
    Range("A1").Offset(1, 0) = Systeme
    Range("B1").Offset(1, 0) = Version
    Range("C1").Offset(1, 0) = Daterecep
    Range("D1").Offset(1, 0) = Refmedia
    Range("E1").Offset(1, 0) = datevalid
    Range("F1").Offset(1, 0) = datelivraison
    Range("G1").Offset(1, 0) = reflivraison
    Range("H1").Offset(1, 0) = dateinstall
    Range("I1").Offset(1, 0) = Commentaires

End If

'effacer les champs suite à l'enregistrement
Commentaires = ""
dateinstall = ""
datelivraison = ""
Daterecep = ""
datevalid = ""
reflivraison = ""
Refmedia = ""
Systeme = ""
Version = ""

End Sub


si quelqu'un pouvait eclairer ma lanterne ^^

Jerome_JaY

4 réponses

Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
299
Salut,
pour la partie du code qui écrit tes données dans la feuille de calcul, tu la commences par
With Sheets(Nomdelafeuille)

(en l'occurence Nomdelafeuille, ici, c'est Systeme, si tes onglets ont exactement le même nom que le contenu de ta liste Systeme)
et tu la termines par
End With

Entre les deux, tu rajoutes un point devant chaque référence à une plage, afin qu'elle fasse référence à la feuille précisée au-dessus.
Voir l'exemple ci-dessous :
With Sheets(Systeme)

'création du tableau
.Range("A1") = "Systeme"
.Range("B1") = "Version"
.Range("C1") = "Date de réception officielle sur CSL"
.Range("D1") = "Référence des médias reçus"
.Range("E1") = "Date de validation"
.Range("F1") = "Date de livraison vers le site"
.Range("G1") = "Référence livraison MOI"
.Range("H1") = "Date d'installation sur site OPS"
.Range("I1") = "Commentaires"

'Se mettre à la fin du tableau
    If .Range("A1").Offset(1, 0) <> "" _
    And .Range("B1").Offset(1, 0) <> "" _
    And .Range("C1").Offset(1, 0) <> "" _
    And .Range("D1").Offset(1, 0) <> "" _
    And .Range("E1").Offset(1, 0) <> "" _
    And .Range("F1").Offset(1, 0) <> "" _
    And .Range("G1").Offset(1, 0) <> "" _
    And .Range("H1").Offset(1, 0) <> "" Then

    .Range("A1").End(xlDown).Offset(1, 0) = Systeme
    .Range("B1").End(xlDown).Offset(1, 0) = Version
    .Range("C1").End(xlDown).Offset(1, 0) = Daterecep
    .Range("D1").End(xlDown).Offset(1, 0) = Refmedia
    .Range("E1").End(xlDown).Offset(1, 0) = datevalid
    .Range("F1").End(xlDown).Offset(1, 0) = datelivraison
    .Range("G1").End(xlDown).Offset(1, 0) = reflivraison
    .Range("H1").End(xlDown).Offset(1, 0) = dateinstall
    .Range("I1").End(xlDown).Offset(1, 0) = Commentaires
    
Else
    'Remplissage d'un tableau vierge
    .Range("A1").Offset(1, 0) = Systeme
    .Range("B1").Offset(1, 0) = Version
    .Range("C1").Offset(1, 0) = Daterecep
    .Range("D1").Offset(1, 0) = Refmedia
    .Range("E1").Offset(1, 0) = datevalid
    .Range("F1").Offset(1, 0) = datelivraison
    .Range("G1").Offset(1, 0) = reflivraison
    .Range("H1").Offset(1, 0) = dateinstall
    .Range("I1").Offset(1, 0) = Commentaires

End If
End With
Messages postés
32
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2008

je viens de tester ce que tu m'as dit et j'arrive sur un debogage au niveau de With Sheets(Systeme)
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 104
bonjour
With Sheets("Systeme")
si c'est le nom de la feuille.
A+

Messages postés
32
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2008

c'est bon j'ai trouver l'erreur, il fallait que je récupère la valeur de système

With Sheets(Systeme.Value)


donc le code marche nickel ^^