Bonsoir
j'aimerais savoir comment mettre les infos que je rentre d'apres mon userform non a la suite en fin de ligne, mais en debut de ligne, qui demarre toujours en C...
merci
cris
Bonsoir
j'aimerais savoir comment mettre les infos que je rentre d'apres mon userform non a la suite en fin de ligne, mais en debut de ligne, qui demarre toujours en C...
merci
cris
Bonsoir Cris,
Exemple en C1. La cellule insérée remplace la cellule citée donc, la valeur en C1 passe en C2 :
Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub Inserer() [C1].Insert xlDown [C1] = "Valeur de mon formulaire" End Sub
excuse moir herve je n'est meme pas mis mon code qui pourrais mieus explicite mon post.
cris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub CommandButton2_Click() Dim WsS As Worksheet Dim MaRech As Range, MaPlage As Range Dim DerLigS As Long, DerCol As Long Set WsS = Sheets("Data") DerLigS = WsS.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row Set MaPlage = WsS.Range(WsS.Cells(1, 1), WsS.Cells(DerLigS, 1)) Set MaRech = MaPlage.Find(consultant.CB_numero, LookIn:=xlValues) DerCol = WsS.Cells(MaRech.Row, WsS.Rows(MaRech.Row).Cells.Count).End(xlToLeft).Column ' WsS.Cells(MaRech.Row, DerCol + 1) = CDate(DTPicker1) & " à " & consultant.TextBox1.Value & _ Chr(10) & consultant.ComboBox1.Value TextBox1.Value = "" ComboBox1.Value = "" End Sub
Bonsoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub CommandButton2_Click() Dim MaRech As Range Dim DerLigS As Long If Me.CB_numero.Value <> "" Then With Sheets("Data") DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, lookat:=xlWhole) If Not MaRech Is Nothing Then .Range("C" & MaRech.Row).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value Set MaRech = Nothing End If End With Me.TextBox1.Value = "" Me.ComboBox1.Value = "" End If End Sub
merci pour ta reponse mercatog
les donnees s'inscrive bien dans la bonne cellules, mais des que je veux en creer d'atres donnees elles ecrases celle deja dans cette cellule, je souhaiterais des les donnees se decale sur la ligne dans la celulles suivantes.
merci
cris
Attends quand même, On doit faire une petite analyse du code
Tu as Une combobox nommée CB_numero
Tu cherche sur la colonne A de la feuille Data, la valeur sélectionnée dans CB_numero.
Quand tu trouve cette donnée sur la colonne A, tu écris sur la cellule de la colonne C sur la même ligne la date est autre chose.
C'est ça?
J'ai fais l'analyse du code précédent.
Maintenant, quelle était la question?
tres bonne analyse.
je mets une date ainsi que du texte dans la cellule C, jusqu'ici normal, mais quand je choisis la meme valeur dans la colonne A, je souhaiterais que mes nouvelles donnees se mettent en C, et decale les anciennes donnees en D..
cris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub CommandButton2_Click() Dim DerLigS As Long, Lig As Long Dim MaRech As Range If Me.CB_numero.Value <> "" Then With Sheets("Data") DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not MaRech Is Nothing Then Lig = MaRech.Row .Range("C" & Lig).Insert xlShiftToRight .Range("C" & Lig).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value Set MaRech = Nothing End If End With Me.TextBox1.Value = "" Me.ComboBox1.Value = "" End If End Sub
tu fonctionne nickel.
merci mercatog
cris.
si je peux te poser une autre question, a moins qu'il faut que je post un autre.
j'ai dans la cellule B de chaque ligne cette formule:
=NBVAL(C11:O11)
mais avec le nouveau code chaque fois que les donnees sont dans la cellule C, la formule se decale de passe A D1111
peux t'on fixer cette formule a C11:O11
merci
cris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub CommandButton2_Click() Dim DerLigS As Long Dim MaRech As Range, CelFin As Range If Me.CB_numero.Value <> "" Then With Sheets("Data") DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not MaRech Is Nothing Then 'On décale les cellules à partir de C vers la droite .Range("C" & MaRech.Row).Insert xlShiftToRight 'La dernière cellule de la ligne MaRech.Row Set CelFin = .Cells(MaRech.Row, .Columns.Count).End(xlToLeft) 'En B on insère la formule .Range("B" & MaRech.Row).Formula = "=CountA(C" & MaRech.Row & ":" & CelFin.Address(0, 0) & ")" Set CelFin = Nothing 'On écrit en C notre texte .Range("C" & MaRech.Row).Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value Set MaRech = Nothing End If End With Me.TextBox1.Value = "" Me.ComboBox1.Value = "" End If End Sub
bonjour et merci mercatog
tout le code fonctionne, mais je ne peus pu appliquez ma mise en forme ci dessous:
comment je peux dire cellule active et appliquez la mise en forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Range("C" & Lig).Select With Selection.Font .Name = "Arial" End With With Selection.Font .Size = 8 End With With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
merci
cris
Bonjour,
Quand tu auras le réflexe d'éviter les Select, tu auras franchi un pallier énorme.
En plus, si tu décale la cellule C vers la droite, la cellule C garde la même mise en forme que la cellule initiale qui a été décalée.
Sinon, pour la mise en forme, tu pourras faire comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Private Sub CommandButton2_Click() Dim DerLigS As Long Dim MaRech As Range, CelFin As Range If Me.CB_numero.Value <> "" Then With Sheets("Data") DerLigS = .Cells(.Rows.Count, 1).End(xlUp).Row Set MaRech = .Range("A1:A" & DerLigS).Find(Me.CB_numero.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not MaRech Is Nothing Then 'On décale les cellules à partir de C vers la droite .Range("C" & MaRech.Row).Insert xlShiftToRight 'La dernière cellule de la ligne MaRech.Row Set CelFin = .Cells(MaRech.Row, .Columns.Count).End(xlToLeft) 'En B on insère la formule .Range("B" & MaRech.Row).Formula = "=CountA(C" & MaRech.Row & ":" & CelFin.Address(0, 0) & ")" Set CelFin = Nothing 'On écrit en C notre texte et on applique la mise en forme With .Range("C" & MaRech.Row) .Value = CDate(DTPicker1.Value) & " à " & Me.TextBox1.Value & Chr(10) & Me.ComboBox1.Value .Font.Name = "Arial" .Font.Size = 8 .Borders.LineStyle = xlContinuous End With Set MaRech = Nothing End If End With Me.TextBox1.Value = "" Me.ComboBox1.Value = "" End If End Sub
merci mercatog
toutes tes reponses sont exactes, ainsi que pour mes select.
j'ai utiliser je pense trop souvent excel avec le mode creation macros, depuis excel 5.
je vais m'appliquer a ne plus utiliser les select en autres.
merci encore
cris![]()
Partager