Boucle copie Feuille 1 colle Feuille 2

Bonjour,

Sa fait un petit moment que je cherche, que je tente ... et que je tape des choses horribles sans trouve ma solution.

exemple :

J'aimerais créer une boucle qui va chercher en récupèrent la valeur cellule feuil1!B247 qui ce répété tous les 12 (B259,B271,B283,etc) jusqu'à cellules vide fin de la boucle. Puis sont coller en feuil2!A2 jusqu'à valeur nul.

Feuil1!B247 = FFFF

Donc Feuil2!A2 = FFFF

Feuil1!B523 = Vide

Fin de boucle et de la copie sur la feuille 2

Merci!!!!

Bonjour.

Il faut déterminer le nb de lignes de ta plage puis utiliser une boucle For Next avec un step 12 ou récupérer la valeur de la cellule à l'adresse de la ligne +12.

Dim NombreLigne as integer
Dim compteur as integer
Dim ValeurCellule as string

NombreLigne = monclasseur.mafeuille1.UsedRange.rows.count

compteur = 1
For i = 247 to NombreLigne step 12 ' (NombreLigne - 1) s'il y a une tétière
compteur = compteur + 1
ValeurCellule = Application.monclasseur.mafeuille1.Range ("A" & i).value 'colonne A pour l'exemple
Application.monclasseur.mafeuille2.Range ("A" & compteur ).value = ValeurCellule 'colonne A pour l'exemple
Next

J'ai corrigé le code en ajoutant un compteur pour éviter d'avoir les cellules de la feuille 2 éparpillées !

Cordialement.

Merci, je test ça de suite....

merci encore, mais je bloque :

Sub Test()
Worksheets("Feuil1").Select
Worksheets("Feuil2").Select
Dim NombreLigne As Integer
Dim compteur As Integer
Dim ValeurCellule As String

NombreLigne = Feuil1.UsedRange.Rows.Count

compteur = 1
For i = 247 To NombreLigne Step 12 ' (NombreLigne - 1) s'il y a une tétière
compteur = compteur + 1
ValeurCellule = Application.Feuil1.Range("A" & i).Value  'colonne A pour l'exemple
Application.Feuil2.Range("A" & compteur).Value = ValeurCellule   'colonne A pour l'exemple
Next

End Sub

Où écris-tu ton code ?

Dans un module, dans le classeur ?

Tu es en option explicit ?

Tu n'auras toujours qu'un seul classeur d'ouvert ?

Tu n'as pas besoin d'utiliser la méthode"Select" et ce n'est pas de cette façon que tu dois déclarer tes worksheets.

essaie ça:

Option Explicit
Sub Test()

Dim NombreLigne, i As Integer
Dim compteur As Integer
Dim ValeurCellule As String

NombreLigne = Application.ActiveWorkbook.Worksheets.Item("Feuil1").UsedRange.Rows.Count

compteur = 0
For i = 247 To NombreLigne Step 12 ' (NombreLigne - 1) s'il y a une tétière
compteur = compteur + 1
ValeurCellule = Application.ActiveWorkbook.Worksheets.Item("Feuil1").Range("A" & i).Value   'colonne A pour l'exemple
Application.ActiveWorkbook.Worksheets.Item("Feuil2").Range("A" & compteur).Value = ValeurCellule    'colonne A pour l'exemple
Next

End Sub

Si ça fonctionne, tu peux mettre "RÉSOLU".

Bon courage.

pipout64 a écrit :

Où écris-tu ton code ? Visual basic dans Excel 2013

Dans un module, dans le classeur ? Dans un classeur général

Tu es en option explicit ? Non, c'est juste que je test des truc ....

Tu n'auras toujours qu'un seul classeur d'ouvert ? je ne pense pas !

Tu n'as pas besoin d'utiliser la méthode"Select" et ce n'est pas de cette façon que tu dois déclarer tes worksheets.

Non mais ça ma aide a faire fonction ton script.

essaie ça:

Option Explicit
Sub Test()

Dim NombreLigne, i As Integer
Dim compteur As Integer
Dim ValeurCellule As String

NombreLigne = Application.ActiveWorkbook.Worksheets.Item("Feuil1").UsedRange.Rows.Count

compteur = 0
For i = 247 To NombreLigne Step 12 ' (NombreLigne - 1) s'il y a une tétière
compteur = compteur + 1
ValeurCellule = Application.ActiveWorkbook.Worksheets.Item("Feuil1").Range("A" & i).Value   'colonne A pour l'exemple
Application.ActiveWorkbook.Worksheets.Item("Feuil2").Range("A" & compteur).Value = ValeurCellule    'colonne A pour l'exemple
Next

End Sub

Si ça fonctionne, tu peux mettre "RÉSOLU".

Bon courage.

un grand Merci sa marche presque .... il me reste un souci sur le "NombreLigne" et égale à 786700. et sa bloque.

je tiens à dire encore Merci.

Quel est le nombre total de lignes à traiter dans ton fichier ?

Quel message d'erreur as-tu ?

Encore merci, je vais me contenter de 32000 ça marche bien.

Option Explicit
Sub Test()

Dim NombreLigne, i As Integer
Dim compteur As Integer
Dim ValeurCellule As String

NombreLigne = Application.ActiveWorkbook.Worksheets.Item("Feuil1").UsedRange.Rows.Count

compteur = 1
    For i = 247 To 32000 Step 12 ' (NombreLigne - 1) s'il y a une tétière
        compteur = compteur + 1
        ValeurCellule = Application.ActiveWorkbook.Worksheets.Item("Feuil1").Range("B" & i).Value   'colonne A pour l'exemple
        Application.ActiveWorkbook.Worksheets.Item("Feuil2").Range("A" & compteur).Value = ValeurCellule    'colonne A pour l'exemple
    Next
End Sub
pipout64 a écrit :

Quel est le nombre total de lignes à traiter dans ton fichier ?

inconnu c'est une importation d'un fichier TEXT qui varie très souvent.

Quel message d'erreur as-tu ?

Dépassement de capacité

Sauf si ta une solution ? je vais mettre "RÉSOLU".

essaie de modifier le typage de la variable i et donc de la passer de "integer" à "long"

Option Explicit
Sub Test()

Dim NombreLigne, i As Long
Dim compteur As Long
Dim ValeurCellule As String

NombreLigne = Application.ActiveWorkbook.Worksheets.Item("Feuil1").UsedRange.Rows.Count

compteur = 1
    For i = 247 To 32000 Step 12 ' (NombreLigne - 1) s'il y a une tétière
       compteur = compteur + 1
        ValeurCellule = Application.ActiveWorkbook.Worksheets.Item("Feuil1").Range("B" & i).Value   'colonne A pour l'exemple
       Application.ActiveWorkbook.Worksheets.Item("Feuil2").Range("A" & compteur).Value = ValeurCellule    'colonne A pour l'exemple
   Next
End Sub

Script et parfait, tes un génie !!!

Merci encore.

Option Explicit
Sub Test()

Dim NombreLigne, i As Long
Dim compteur As Long
Dim ValeurCellule As String

NombreLigne = Application.ActiveWorkbook.Worksheets.Item("Feuil1").UsedRange.Rows.Count

compteur = 1
    For i = 247 To NombreLigne Step 12 ' (NombreLigne - 1) s'il y a une tétière
      compteur = compteur + 1
        ValeurCellule = Application.ActiveWorkbook.Worksheets.Item("Feuil1").Range("B" & i).Value   'colonne A pour l'exemple
      Application.ActiveWorkbook.Worksheets.Item("Feuil2").Range("A" & compteur).Value = ValeurCellule    'colonne A pour l'exemple
  Next
End Sub
Rechercher des sujets similaires à "boucle copie feuille colle"