Ajout de données d'une même cellule vers une ligne différente
Bonjour,
À l'aide d'un bouton de commande appelé ici "Ajout".
Je veux copier les données d'une cellule exemple "F17" vers un autre onglet appellé ici "soumission" dans la cellule "A2" de cette onglet.
Jusque là j'ai aucune difficulté.
Par la suite, je veux que lorsque j'appuie sur le bouton de commande "Ajout", que la donnée en "F17" se met en "A2" +1 si "A2" n'est pas vide et ainsi de suite pour "A2"+2 ou "A3"+1.
Ce que j'ai pour le moment c'est....
Private Sub CommandButton3_Click()
Worksheets("soumission").Range("b4") = Worksheets("Feuil1").Range("f17")
End Sub
Merci.
Il te faut trouver la dernière cellule vide de ta colonne ou tu veux copier tes valeurs, soit via une boucle soit via un range.
Tu aurais un fichier à nous monter pour te faire un truc en fonction de ton fichier?
ECG
Le voici.
Je vais avoir beaucoup plus que la cellule "F17" a copier sous l'onglet soumissionneur, je ne sais simplement pas comment l'ajouter sur la ligne suivante si la ligne contient déjà des données.
Je te conseille aussi de renommer tes boutons dès le début, ça aide de visualiser à quoi va servir le code en voyant le nom bien souvent et de savoir à quoi tu l'as attribuer, car si tu as 20 bouton, dur de se souvenir à quoi correspond le "CommandButton18_Click" surtout quand tu reviens 2 semaines, 2 mois après sur tes codes.
Ça prends du temps sur le coup mais au final on en gagne
Tu parlais de la cellule A2 mais cela va en B4, ça ne change rien mais j’espère qu'on parle de la même chose du coup
il faut associe une macro à ton bouton "ajouter une soumission", copie cela à la place de ton code actuel
Private Sub CommandButton3_Click()
Call RECOPIE_SOUMISSION
End Subet dans un module (il te faut le créer on déclare la sub):
Sub RECOPIE_SOUMISSION()
Dim COLONNNE_PRIX_SOUMISSION As String
Dim NOM_FEUILLE_SOUMISSION As String
'j'aime passer par variable les valeurs intéressante, surtout si tu continue par la suite tes macros et autres, ca sera une bonne base (je trouve)
COLONNNE_PRIX_SOUMISSION = "B"
NOM_FEUILLE_SOUMISSION = "Soumission"
'on va chercher la première ligne vide, si tu veux plus d'explication demande le, et on affecte ta valeur comme tu faisais
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNE_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNE_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("f17")
End SubCela répond à tes attentes?
ECG
Exactement ce que j'avais besoin.
Merci.
Voici maintenant le code avec ton apport.
Sub RECOPIE_SOUMISSION()
Dim COLONNNEA_PRIX_SOUMISSION As String
Dim NOM_FEUILLE_SOUMISSION As String
Dim COLONNNEB_PRIX_SOUMISSION As String
Dim COLONNNEC_PRIX_SOUMISSION As String
Dim COLONNNED_PRIX_SOUMISSION As String
Dim COLONNNEE_PRIX_SOUMISSION As String
'j'aime passer par variable les valeurs intéressante, surtout si tu continue par la suite tes macros et autres, ca sera une bonne base (je trouve)
COLONNNEA_PRIX_SOUMISSION = "A"
COLONNNEB_PRIX_SOUMISSION = "B"
COLONNNEC_PRIX_SOUMISSION = "C"
COLONNNED_PRIX_SOUMISSION = "D"
COLONNNEE_PRIX_SOUMISSION = "E"
NOM_FEUILLE_SOUMISSION = "Soumission"
'on va chercher la première ligne vide, si tu veux plus d'explication demande le, et on affecte ta valeur comme tu faisais
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEA_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEA_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("B8")
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEB_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEB_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("C8")
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEC_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEC_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("D8")
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNED_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNED_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("A8")
Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEE_PRIX_SOUMISSION & Sheets(NOM_FEUILLE_SOUMISSION).Range(COLONNNEE_PRIX_SOUMISSION & Rows.Count).End(xlUp).Row + 1) = Worksheets("Feuil1").Range("f17")
End Sub