Spiekermayo
XLDnaute Nouveau
Bonjour tout le monde,
Je n'arrive pas a faire tourner ce code pour qu'il me copie tous les onglets deja existants dans ma feuille.
J'essaie de creer une macro pour que mes onglets se remplissent automatiquement en fonction d'une cellule.
En gros :
NbF = Application.WorksheetFunction.CountA(.Range("H:H"))
For i = 1 To NbF
Mon sheet1 est un tableau de valeur, j'ai egalement une dizaine d'autres onglets preremplis.
Si Sheets(1).Cells(i,8).Value est egale au nom d'un de mes onglets, alors l'onglet en question prend Sheets(1).Cells(i,1) , Sheets(1).Cells(i,2) , Sheets(1).Cells(i,4) qu'il se colle dans 3 cellules chez lui ( G1, I1, G3).
Mon probleme:
Mes noms d'onglets vont correspondre avec plusieurs Sheets(1).Cells(i,8).Value
Pour l'instant, mon premier onglet se copie bien le nombre de fois qu'il rencontre une analogie avec Sheets(1).Cells(i,8).Value. ( cependant il se copie dans d'autres nouveaux classeurs et pas dans mon classseur initial....)
Mais le code ne copie pas les autres onglets qui ont eux aussi plusieurs analogies, c'est donc sur ce point que je bloque je n'arrive a passer a mon Sheets(1).Cells(i,8).Value suivant.
J'ai laisse mon code actuel ci-dessous, si vous avez une jeune piste a exploiter ca m'aiderait bien...
Bonne journee a tous.
Sub add_sheets()
Dim NbF As Long, i As Long, Nf As String
With Sheets(1)
NbF = Application.WorksheetFunction.CountA(.Range("H:H"))
For i = 1 To NbF
On Error Resume Next
Nf = .Cells(i, 8).Value
Sheets(Nf).Range("G1") = .Cells(i, 1)
Sheets(Nf).Range("I1") = .Cells(i, 2)
Sheets(Nf).Range("G3") = .Cells(i, 4)
Next
For i = 1 To NbF
On Error Resume Next
If Nf = .Cells(i, 8).Value Then
Sheets(Nf).Copy
Sheets(Nf).Range("G1") = .Cells(i, 1)
Sheets(Nf).Range("I1") = .Cells(i, 2)
Sheets(Nf).Range("G3") = .Cells(i, 4)
End If
Next
End With
End Sub
Je n'arrive pas a faire tourner ce code pour qu'il me copie tous les onglets deja existants dans ma feuille.
J'essaie de creer une macro pour que mes onglets se remplissent automatiquement en fonction d'une cellule.
En gros :
NbF = Application.WorksheetFunction.CountA(.Range("H:H"))
For i = 1 To NbF
Mon sheet1 est un tableau de valeur, j'ai egalement une dizaine d'autres onglets preremplis.
Si Sheets(1).Cells(i,8).Value est egale au nom d'un de mes onglets, alors l'onglet en question prend Sheets(1).Cells(i,1) , Sheets(1).Cells(i,2) , Sheets(1).Cells(i,4) qu'il se colle dans 3 cellules chez lui ( G1, I1, G3).
Mon probleme:
Mes noms d'onglets vont correspondre avec plusieurs Sheets(1).Cells(i,8).Value
Pour l'instant, mon premier onglet se copie bien le nombre de fois qu'il rencontre une analogie avec Sheets(1).Cells(i,8).Value. ( cependant il se copie dans d'autres nouveaux classeurs et pas dans mon classseur initial....)
Mais le code ne copie pas les autres onglets qui ont eux aussi plusieurs analogies, c'est donc sur ce point que je bloque je n'arrive a passer a mon Sheets(1).Cells(i,8).Value suivant.
J'ai laisse mon code actuel ci-dessous, si vous avez une jeune piste a exploiter ca m'aiderait bien...
Bonne journee a tous.
Sub add_sheets()
Dim NbF As Long, i As Long, Nf As String
With Sheets(1)
NbF = Application.WorksheetFunction.CountA(.Range("H:H"))
For i = 1 To NbF
On Error Resume Next
Nf = .Cells(i, 8).Value
Sheets(Nf).Range("G1") = .Cells(i, 1)
Sheets(Nf).Range("I1") = .Cells(i, 2)
Sheets(Nf).Range("G3") = .Cells(i, 4)
Next
For i = 1 To NbF
On Error Resume Next
If Nf = .Cells(i, 8).Value Then
Sheets(Nf).Copy
Sheets(Nf).Range("G1") = .Cells(i, 1)
Sheets(Nf).Range("I1") = .Cells(i, 2)
Sheets(Nf).Range("G3") = .Cells(i, 4)
End If
Next
End With
End Sub