CheckBox1 / ComboBox1 depuis un USERFORM sur les cellules DUR DUR

stef371967

XLDnaute Junior
:cool: Bonjour a vous tous
Novice avec Excel je vous joint mon fichier TEST 3 "préparé"
avec plus d'explication.
parce-que la c très dur pour moi .... # A Excel #
1* ajouts des lignes depuis USERFORM 1 EN COURT
2* ajout une touche macro pour ouvrir une autre fenêtre de saisie FAIT a 50%
3* effectuer un trie automatique par date en ordre croisant

Un grand merci a vous tous d'avance. :eek:
:eek: Je joint mon nouveaux fichier avec USERFORM 1 en court
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Rajout de ligne par touche, avec un trie par date. DUR DUR

Salut stef371967 et le forum
Pour la première question, une macro de ce type :
Code:
Sub test()
Dim Cel As Range, Plage As Range
Dim H As Integer, Lig As Long

'Protection de la feuille
ActiveSheet.Unprotect
'Calcul de la Hauteur d'un enregistrement
H = Range("A33").MergeArea.Rows.Count
'Calcul de la dernière ligne
'---------------------------------------------------------------
'For Lig = Cells(Rows.Count, "A").End(xlUp).Row To 33 Step -1
'    If IsNumeric(Cells(Lig, "A")) Then
'        Lig = Lig + 1 + H
'        Exit For
'    End If
'Next Lig
'Possibilité de calcul en fonction du dernier n° d'ordre
'---------------------------------------------------------------
Lig = Cells(Rows.Count, "A").End(xlUp).Row - 11
'copie de l'enregistement
[A33:N37].Copy
Range("A" & Lig).Insert Shift:=xlDown
'Formatage des ligne
Range("A" & Lig).MergeArea.Rows.RowHeight = [A33].RowHeight
'RAZ
Range("A" & Lig).MergeArea.ClearContents
Range("B" & Lig + 4).MergeArea.ClearContents
Range("C" & Lig).MergeArea.ClearContents
Range("C" & Lig + 1).MergeArea.ClearContents
Range("C" & Lig + 2).MergeArea.ClearContents
Range("C" & Lig + 3).MergeArea.ClearContents
Range("K" & Lig + 1).MergeArea.ClearContents
Range("G" & Lig + 2).MergeArea.ClearContents
Range("N" & Lig + 2).MergeArea.ClearContents
'Numéro d'ordre
Range("A" & Lig).MergeArea = WorksheetFunction.Max(Columns(1)) + 1
Range("K" & Lig + 9).MergeArea.Value = Range("A" & Lig).MergeArea.Value
Range("C" & Lig).Activate
'protection de la feuille
ActiveSheet.Protect
End Sub
Pourrait être une réponse. Attention : elle est faite sous une version 2003, et les versions suivantes peuvent présenter des instructions qui seraient plus adaptées.

Pour la seconde, c'est fait ;) ouf
Pour la troisième, quelle date ?
Une idée : créer une colonne avec les couples N°d'ordre et Valeur de tri, faire un tri dessus, puis réorganiser la liste en copiant les blocs, d'abord sur des colonnes tampons, puis sur la liste originale, dans l'ordre, en se fiant au numéro d'ordre trié.
A+
 

stef371967

XLDnaute Junior
Re : Rajout de ligne par touche, avec un trie par date. DUR DUR

:eek: Merci Gorfael très rapide

Bon la macro impeccable mais pour remplir mais cellule en page 1 avec le bouton USERFORM 1 voir mon fichier
et de lais ajouté sur la page 1 automatiquement avec la touche validation.

en trois effectuer un trie automatique croissant en fonction de la date saisie et non du n° d'ordre sur la page 1

Merci car la , un grand boulot :cool:
 

stef371967

XLDnaute Junior
Re : Rajout de ligne par touche, avec un trie par date. DUR DUR

Merci
je joint un nouveaux fichier modifier en Test 5 plus haut
Car la je sèche pour la suite .

Reste un CheckBox1 / ComboBox1 "déclarée dans le code mais ne fonctionne pas"

depuis mon USERFORM sur les cellules .

Plus un trie automatique par date en ordre croissant sur la feuil1

Avec toujours les explications
Merci a vous d'avance
Stef..............
 

Discussions similaires

Statistiques des forums

Discussions
312 280
Messages
2 086 746
Membres
103 384
dernier inscrit
bakhtibenabbey