Copie cellules excel, creation onglets

  • Initiateur de la discussion Initiateur de la discussion arthurho
  • 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 !

A

arthurho

Guest
Bonjour,

J'ai réalisé un script qui parcours un fichier excel et crée un onglet a chaque changement de nom dans une cellule du fichier initial (colonne "F"). Une fois l'onglet crée, je copie ligne par ligne les lignes contenant le nom qui a permis la création de l'onglet.

Malheureusement, toutes les lignes ne sont pas copiées, elles sont copiées de 2 en 2

Avez vous une solution ?

Merci de votre aide



Code:
Sub LireFichier3()


Dim Z1 As String, Z2 As String, LgSource As Range
Dim l As Long, tableau() As String
Dim sourceRange As Range
Dim destrange As Range
Dim k As Integer


With Sheets("Feuil1").Range("F2:F20")
.Select
  Do While Not (IsEmpty(ActiveCell))
    
    Z2 = ActiveCell.Value
    tableau = Split(Z2, "_")
    
    If Z1 <> tableau(1) Then
    
        k = 1
        ActiveCell.Interior.ColorIndex = 3
        Worksheets.Add After:=Sheets(ActiveWorkbook.Sheets.Count)
        ActiveSheet.Name = tableau(1)
        
    End If
    
    Sheets("Feuil1").Select

    Z1 = tableau(1)
   
    Set sourceRange = Sheets("Feuil1").Cells(ActiveCell.Row, 1).Range("A" & k & ":L" & k)
    Set destrange = Sheets(tableau(1)).Range("A" & k & ":L" & k)
    sourceRange.Copy destrange
    k = k + 1

    Selection.Offset(1, 0).Select
    Loop
  
End With
End Sub
 

Pièces jointes

Dernière modification par un modérateur:
Re : Copie cellules excel, creation onglets

Bonjour
essaye celle ci
Sub LireFichier3()


Dim Z1 As String, Z2 As String, LgSource As Range
Dim l As Long, tableau() As String
Dim sourceRange As Range
Dim destrange As Range
Dim k As Integer


With Sheets("Feuil1").Range("F1:F" & Range("f" & Rows.Count).End(xlUp).Row)
.Select
Do While Not (IsEmpty(ActiveCell))

Z2 = ActiveCell.Value
tableau = Split(Z2, "_")

If Z1 <> tableau(1) Then

k = 1
ActiveCell.Interior.ColorIndex = 3
Worksheets.Add After:=Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = tableau(1)

End If

Sheets("Feuil1").Select

Z1 = tableau(1)
Set sourceRange = Sheets("Feuil1").Range("A" & ActiveCell.Row & ":L" & ActiveCell.Row)
Set destrange = Sheets(tableau(1)).Range("A" & k & ":L" & k)
sourceRange.Copy destrange
k = k + 1

Selection.Offset(1, 0).Select
Loop

End With
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
325
Réponses
10
Affichages
792
Réponses
3
Affichages
923
Réponses
4
Affichages
756
Retour