Code VBA pr Ajout ds un Onglet spécifique
Salut Tous,
Que dois-je ajouter à ce code pour indiquer que les éléments à ajouter se fasse dans mon onglet BASE au lieu de la feuille active.
J'ai fait un onglet (Master) pour mes boutons et ce bouton (Matrice) s'ajoute ds cet onglet au lieu de l'onglet BASE.
Merci Beaucoup
Voir aussi PJ
Private Sub CommandButton_Ajouter_Click()
'Coloration des Labels en noir'
Label_Date_Heure.ForeColor = RGB(0, 0, 0)
Label_Adressez_a.ForeColor = RGB(0, 0, 0)
Label_Numero_du_Po.ForeColor = RGB(0, 0, 0)
Label_Numero_Piece.ForeColor = RGB(0, 0, 0)
Label_Le_Probleme.ForeColor = RGB(0, 0, 0)
Label_Fournisseurs.ForeColor = RGB(0, 0, 0)
Label_Solution.ForeColor = RGB(0, 0, 0)
Label_Negatif.ForeColor = RGB(0, 0, 0)
'Contrôle du contenu'
If ComboBox_Adressez_a.Value = "" Then
Label_Adressez_a.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Numero_du_Po.Value = "" Then 'Si pas de "Numero_du_PO'
Label_Numero_du_Po.ForeColor = RGB(255, 0, 0) 'Label "Numero_du_PO" en rouge'
ElseIf TextBox_Numero_du_Po.Value = "" Then
Label_Numero_du_Po.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Numero_Piece.Value = "" Then
Label_Numero_Piece.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Le_Probleme.Value = "" Then
Label_Le_Probleme.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox_Fournisseurs.Value = "" Then
Label_Fournisseurs.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Solution.Value = "" Then
Label_Solution.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox_Negatif.Value = "" Then
Label_Negatif.ForeColor = RGB(255, 0, 0)
Else
'Si le formulaire est complet, on insère les valeurs sur la feuille'
Dim no_ligne As Integer, Numero_du_Po As String
'N° de ligne de la dernière cellule non vide de la colonne +1'
no_ligne = Range("A65536").End(xlUp).Row + 1
'Insertion des valeurs sur la feuille'
Cells(no_ligne, 1) = TextBox_Date_Heure.Value
Cells(no_ligne, 2) = ComboBox_Adressez_a
Cells(no_ligne, 3) = TextBox_Numero_du_Po.Value
Cells(no_ligne, 4) = TextBox_Numero_Piece.Value
Cells(no_ligne, 5) = TextBox_Le_Probleme.Value
Cells(no_ligne, 6) = ComboBox_Fournisseurs.Value
Cells(no_ligne, 7) = TextBox_Solution.Value
Cells(no_ligne, 8) = ComboBox_Negatif.Value
'Après insertion, on remet les valeurs initiales'
TextBox_Date_Heure.Value = ""
ComboBox_Adressez_a.Value = ""
TextBox_Numero_du_Po.Value = ""
TextBox_Numero_Piece.Value = ""
TextBox_Le_Probleme.Value = ""
ComboBox_Fournisseurs.ListIndex = -1
TextBox_Solution.Value = ""
ComboBox_Negatif.Value = ""
End If
End Sub
Salut,
Essaie de remplacer le passage ci-dessous
'Insertion des valeurs sur la feuille'
With Sheets("BASE")
.Cells(no_ligne, 1) = TextBox_Date_Heure.Value
.Cells(no_ligne, 2) = ComboBox_Adressez_a
.Cells(no_ligne, 3) = TextBox_Numero_du_Po.Value
.Cells(no_ligne, 4) = TextBox_Numero_Piece.Value
.Cells(no_ligne, 5) = TextBox_Le_Probleme.Value
.Cells(no_ligne, 6) = ComboBox_Fournisseurs.Value
.Cells(no_ligne, 7) = TextBox_Solution.Value
.Cells(no_ligne, 8) = ComboBox_Negatif.Value
End WithSi ça ne passe pas, merci de fournir ton fichier, plutôt qu'une image
Cordialement.
Salut Yvouille ,
Pouvez-vous allez à ce lien. Vous pourrez télécharger mon fichier.
Je ne peux pas faire une PJ car trop gros.
Merci Beaucoup.
Re,
J'ai ouvert ton fichier et ça part un peu dans tous les sens. J'ai retrouvé apparemment le bouton auquel est rattaché la macro que tu as fourni sur ton premier message. Par contre j'ai remarqué que tu n'avais pas modifié ton code sur la base de ma proposition. Dois-je le faire pour toi ?
Je trouverais plus juste que tu fasses toi l'essai et que - si ça ne joue pas - tu me donnes quelques précisions sur ce que tu as essayé et qui n'a pas fonctionné.
Amicalement.
Salut Yvouille,
Je n'avais pas vu tous les changements de la procédure que vous m'avez suggéré.
J'ai donc copié votre procédure.
Effectivement ça fonctionne. Mais, la ligne se rajoute sur la première ligne
de l'onglet Base au lieu de la dernière non vide.
Et, elle efface la ligne qu'elle remplace.
Ça fait ça juste avec le bouton ds l'onglet Master. Le bouton ds l'onglet Base lui
fonctionne bien.
Auriez-vous une idée de ce qui me manque.
Merci Beaucoup
Re-bonjour,
En fait tu dois également chercher le numéro de la dernière ligne occupée (no_ligne =....) sur la bonne feuille. Il faut donc inclure l'instruction juste avant au passage With....End with.
Ca donne le bout de code :
'Insertion des valeurs sur la feuille'
With Sheets("BASE")
'N° de ligne de la dernière cellule non vide de la colonne +1'
no_ligne = .Range("A65536").End(xlUp).Row + 1
.Cells(no_ligne, 1) = TextBox_Date_Heure.Value
.Cells(no_ligne, 2) = ComboBox_Adressez_a
.Cells(no_ligne, 3) = TextBox_Numero_du_Po.Value
.Cells(no_ligne, 4) = TextBox_Numero_Piece.Value
.Cells(no_ligne, 5) = TextBox_Le_Probleme.Value
.Cells(no_ligne, 6) = ComboBox_Fournisseurs.Value
.Cells(no_ligne, 7) = TextBox_Solution.Value
.Cells(no_ligne, 8) = ComboBox_Negatif.Value
End WithTon fichier est énorme et il ne passe pas avec le site C-joint que j’utilise normalement. Afin de ne pas trop me casser la tête, je te fournis par sécurité le code complet ci-dessous, code qui ne bloque pas chez moi :
Private Sub CommandButton_Ajouter_Click()
'Coloration des Labels en noir'
Label_Date_Heure.ForeColor = RGB(0, 0, 0)
Label_Adressez_a.ForeColor = RGB(0, 0, 0)
Label_Numero_du_Po.ForeColor = RGB(0, 0, 0)
Label_Numero_Piece.ForeColor = RGB(0, 0, 0)
Label_Le_Probleme.ForeColor = RGB(0, 0, 0)
Label_Fournisseurs.ForeColor = RGB(0, 0, 0)
Label_Solution.ForeColor = RGB(0, 0, 0)
Label_Negatif.ForeColor = RGB(0, 0, 0)
'Contrôle du contenu'
If ComboBox_Adressez_a.Value = "" Then
Label_Adressez_a.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Numero_du_Po.Value = "" Then 'Si pas de "Numero_du_PO'
Label_Numero_du_Po.ForeColor = RGB(255, 0, 0) 'Label "Numero_du_PO" en rouge'
ElseIf TextBox_Numero_du_Po.Value = "" Then
Label_Numero_du_Po.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Numero_Piece.Value = "" Then
Label_Numero_Piece.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Le_Probleme.Value = "" Then
Label_Le_Probleme.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox_Fournisseurs.Value = "" Then
Label_Fournisseurs.ForeColor = RGB(255, 0, 0)
ElseIf TextBox_Solution.Value = "" Then
Label_Solution.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox_Negatif.Value = "" Then
Label_Negatif.ForeColor = RGB(255, 0, 0)
Else
'Si le formulaire est complet, on insère les valeurs sur la feuille'
Dim no_ligne As Integer, Numero_du_Po As String
'Insertion des valeurs sur la feuille'
With Sheets("BASE")
'N° de ligne de la dernière cellule non vide de la colonne +1'
no_ligne = .Range("A65536").End(xlUp).Row + 1
.Cells(no_ligne, 1) = TextBox_Date_Heure.Value
.Cells(no_ligne, 2) = ComboBox_Adressez_a
.Cells(no_ligne, 3) = TextBox_Numero_du_Po.Value
.Cells(no_ligne, 4) = TextBox_Numero_Piece.Value
.Cells(no_ligne, 5) = TextBox_Le_Probleme.Value
.Cells(no_ligne, 6) = ComboBox_Fournisseurs.Value
.Cells(no_ligne, 7) = TextBox_Solution.Value
.Cells(no_ligne, 8) = ComboBox_Negatif.Value
End With
'Après insertion, on remet les valeurs initiales'
TextBox_Date_Heure.Value = ""
ComboBox_Adressez_a.Value = ""
TextBox_Numero_du_Po.Value = ""
TextBox_Numero_Piece.Value = ""
TextBox_Le_Probleme.Value = ""
ComboBox_Fournisseurs.ListIndex = -1
TextBox_Solution.Value = ""
ComboBox_Negatif.Value = ""
End If
End SubA te relire.
Salut Yvouille,
Un GROS MERCI d'avoir pris le temps de trouver la solution.
Les deux boutons fonctionnent très bien.
Merci encore.
