Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 copier dans la bonne ligne

  • Initiateur de la discussion Initiateur de la discussion loul03
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

loul03

XLDnaute Occasionnel
Bonjour,

j'ai fait un classeur simplifié de ce que je voudrais obtenir par vba, mais que je n'arrive pas à mettre en place.

j'aimerais que la macro vienne remplir la ligne de chacun des élèves (dans l'onglet Feuil1) en fonction du prenom choisi dans l'onglet 2 .
ca semble trop simple, mais c'est pour ensuite ajouter à un code vba plus compliqué.

par avance merci
loul03
 

Pièces jointes

Bonjour,

j'aimerais que la macro vienne remplir la ligne de chacun des élèves

loul03
Bonjour,
Ceci, attribué au bouton 'Enregistrer' fait ce qui est demandé
VB:
Sub Enregistre()
Dim lig As Long
lig = Application.Match([feuil2!c2], [feuil1!b1:b1000], 0)
With Feuil1
.Range("d" & lig) = [b4]
.Range("e" & lig) = [b5]
.Range("f" & lig) = [b6]
End With
End Sub

*Je ne suis pas certain que ce soit une bonne manière pour constituer une base de donnée
 
bonjour,

je n'ai pas saisi où tu avais créer ton userform?

sinon , sais tu m'aider pour mettre bien en forme cette formule vba (pour un autre classeur)
feuil2.Cells(lig,46)=if(freq="Annuelle",freq+365,if(freq="Mensuelle",freq+30,if(freq="+ 100 000km",km+100000,""""))))

par avance merci
 
Re...
Cet userform est celui natif d'Excel, il n'est pas nécessaire de le créer.
il est appelé par l'instruction vba
ActiveSheet.ShowDataForm
En ce qui concerne "pour mettre bien en forme cette formule vba"
Il est impossible de donner une aide sur cette formule sans connaître le contexte.
 
ok merci de l'info

Dim lig, k
lig = Application.Match(Val(Num_demande), Feuil2.[A1:A65000], 0)
Feuil2.Cells(lig, 10) = Me.DTPicker1 = Now 'valeur en numeric et non en text
Selection.NumberFormat = "m/d/yyyy"
Feuil2.Cells(lig, 11) = Val(Km) 'valeur en numeric et non en text
Feuil2.Cells(lig, 13) = freq
Feuil2.Cells(lig, 14) = presta
Feuil2.Cells(lig, 15) = Ent_1
Feuil2.Cells(lig, 16) = Val(tpe1)
Feuil2.Cells(lig, 17) = Ent_2
Feuil2.Cells(lig, 18) = Val(tpe2)
Feuil2.Cells(lig, 19) = Ent_3
Feuil2.Cells(lig, 20) = Val(tpe3)
Feuil2.Cells(lig, 21) = Ent_4
Feuil2.Cells(lig, 22) = Val(tpe4)
Feuil2.Cells(lig, 23) = Ent_5
Feuil2.Cells(lig, 24) = Val(tpe5)
Feuil2.Cells(lig, 25) = Ent_6
Feuil2.Cells(lig, 26) = Val(tpe6)
Feuil2.Cells(lig, 27) = Ent_7
Feuil2.Cells(lig, 28) = Val(tpe7)
Feuil2.Cells(lig, 29) = Rep_1
Feuil2.Cells(lig, 30) = Val(tpr1)
Feuil2.Cells(lig, 31) = Rep_2
Feuil2.Cells(lig, 32) = Val(tpr2)
Feuil2.Cells(lig, 33) = Rep_3
Feuil2.Cells(lig, 34) = Val(tpr3)
Feuil2.Cells(lig, 35) = Rep_4
Feuil2.Cells(lig, 36) = Val(tpr4)
Feuil2.Cells(lig, 37) = Rep_5
Feuil2.Cells(lig, 38) = Val(tpr5)
Feuil2.Cells(lig, 39) = Rep_6
Feuil2.Cells(lig, 40) = Val(tpr6)
Feuil2.Cells(lig, 41) = Rep_7
Feuil2.Cells(lig, 42) = Val(tpr7)
Feuil2.Cells(lig, 43) = Sum(tpe1 + tpe2 + tpe3 + tpe4 + tpe5 + tpe6 + tpe7 + tpr1 + tpr2 + tpr3 + tpr4 + tpr5 + tpr6 + tpr7)
Feuil2.Cells(lig, 44) = Val(Montant_rep)
NumberFormat = "#,##0.00 $"
Feuil2.Cells(lig, 45) = Commentaire
Feuil2.Cells(lig, 46) = if(freq=""Annuelle"",freq+365,if(freq=""Mensuelle"",freq+30,if(freq=""+ 100 000km"",km+100000,""""))))

j'ai sur un 3ème onglet des cellules qui portent les noms présents dans la formule comme REP_1 Ent_7 et je veux les recopier sur la ligne correspondant au numéro de demande (inscrit en colonne A sur la feuil2 et correspondant à lig) . . ma case freq est une liste déroulante en fonction de laquelle je souhaiterais avoir sur la feuil2 le calcul qui se fait. sauf que vba me met erreur d'expression
 
oui

ces formules apparaissent dans le valider du USERFORM 1. (bouton "saisie réparation")

autre chose, si tu sais me dire comment on met une DTpicker=now ce serait cool de ta part

en espérant
Re...
Dans ton projet " freq" est un combobox qui peut prendre comme valeur

La cellule "Feuil2.Cells(lig, 46)" doit contenir
Feuil2.Cells(lig, 46) = if(freq=""Annuelle"",freq+365,if(freq=""Mensuelle......
Freq+365 ???
ou
freq+30 ???
Je m'interroge de ce que tu souhaites obtenir.

Edit:
Pour DTpicker
VB:
Private Sub UserForm_Initialize()
Me.DTPicker1.Value = Now
End Sub
 
Dernière édition:
je pars d'une date d'entretien et je veux si la fréquence est annuelle ajouter 365 jours, 30jours quand c'est mensuel et +100000 quand cest 100000km
Re..
Cela pourrait ressembler à ceci
Code:
'------------------
If Me.freq.Value = "Annuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "j") + 365
If Me.freq.Value = "Mensuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "j") + 30
If Me.freq.Value = "+ 100 000km" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "K") + 100000
'------------------
 
bonjour

j'ai mis ca


If Me.freq.Value = "Annuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, 10) + 365
ElseIf Me.freq.Value = "Mensuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, 10) + 30
ElseIf Me.freq.Value = "+ 100 000km" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, 11) + 100000
ElseIf Me.freq.Value = "Imprévu" Then Feuil2.Cells(lig, 46) = """"
Else
End If

mais il me répond erreur de compilation else sans if
 
Re...
Essaye
'--------------
Feuil2.Cells(lig, 46) =""
If Me.freq.Value = "Annuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "j") + 365
If Me.freq.Value = "Mensuelle" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "j") + 30
If Me.freq.Value = "+ 100 000km" Then Feuil2.Cells(lig, 46) = Feuil2.Cells(lig, "K") + 100000
'--------------
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
143
Réponses
10
Affichages
500
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…