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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Private Sub btn_ok_Click()
Dim rc As Range, rg As Range, firstaddress As String, irow As Integer, nomfeuille As String 'declaration des variables
'rechercher dans la colonne 'A' les valeurs de la TextBox
Set rc = Range("A:A").Find(txtboxJournal, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False)
'création d'une nouvelle feuille, enregistrement de son nom dans une variable et remplacement de son nom par le numero saisie dans la TextBox
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = txtboxJournal
nomfeuille = ActiveSheet.Name
'selection de la feuille d'information
Sheets("Documentecriture").Select
If Not rc Is Nothing Then
'Stockage de l'adresse dela première cellule trouvée pour ne pas boucler dessus
firstaddress = rc.Address
End If
irow = 1
Application.ScreenUpdating = False
Do While Not rc Is Nothing
rc.Activate
'Sélection de la ligne entière
rc.EntireRow.Select
Selection.Copy
'selection de la nouvelle feuille pour enregistrer les résultat dedans
Sheets(nomfeuille).Select
'On se positionne sur le ligne en-dessous de la dernière ligne copiée
'en incrémentant un compteur irow initialisé à 1 au départ.
Cells(irow, 1).Select
irow = irow + 1
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
'reselection de la feuille d'information pour la suite du parcours
Sheets("Documentecriture").Select
rc.Activate
Set rc = Cells.FindNext(rc)
If rc Is Nothing Then
Exit Do
End If
'Si la recherche est terminée et qu l'on revient sur la première cellule trouvée, on sort.
If rc.Address = firstaddress Then
Exit Do
End If
Loop
Application.CutCopyMode = False
Sheets("Documentecriture").Select
Application.Goto reference:=Range("A1"), Scroll:=True
MsgBox ("Le Journal a bien été copié")
End Sub |
Partager