Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle sur ligne relative

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

Hoareau

XLDnaute Occasionnel
Boucle sur ligne relative

Bonjour
A la macro macro_C(), j'appelle la macro C_N toutes les 28 lignes.
Selectionne la colonne 17 de chaque ligne pour y mette le résultat de C_N
Comment faire pour que C_N tienne compte des valeurs de la colonne :
1 à celle de la derniere cellule non vide de la ligne en cours.
C'est à dire de lig

Ex :
Row 1 > > > 1 2 3 4 5 < < C_N reference >> Lig
Row 29 > > > 1 2 5 4 12<< C_N reference >>lig
Row 57 > > > 1 2 3 4 14<< C_N reference >> lig
Row 85 > > > 1 2 5 4 15<< C_N reference>>lig

merci

Sub macro_C()
Dim lig As Integer
Dim Col As Integer

For lig = 1 To 100 Step 28
For Col = 1 To 1

Next
Cells(lig, 17).Select
Call C_N
Next
End Sub
 
Re : Boucle sur ligne relative

Adaption macro pour ligne relative

Bonjour
merci pour la réponse

ce n'est qu'aujourdh'ui que je vois la réponse,pas de notification de mail

Avec ces 3 macros je voudrais le resultat en feuil3 en tenant ligne par ligne des valeurs de la ligne
les données sont en A1:H100

test_Insert_Rows()
Combin_6N()
macro_Combs()

combin(8,6)=28 combinaisons dond 28 lignes insérées
donc pour 100 lignes en A1:H100

100 X 28 lignes de combinaisons différentes = 2800 lignes occupées

le but c'est de mettre les combinaisons avec les chiffres de la ligne en cous
dans cells(lig,17)
Pour simplifier il faut récupérer la valeur cells(Lig,Col) toutes les 29 lignes
pour les mettre dans vN()
>>>>>>>>
For J = 1 To 8

vN(J) = Sheets("feuil3").Cells(J).Value 'J avant

Next
>>>>>>>




My procedure:
1) Lancer test_Insert_Rows qui insère 28 ligne vide entre ligne de feuille 3

2) Lancer macro_Combs() qui appelle Combin_6N() toutes les 28 lignes pour tenir comptes des chiffres de la ligne en cours




Option Explicit
Public Lig As Long
Public Col As Long
Public numRows As Integer

Option Base 1


1)
Sub Combin_6N()
Dim A As Integer, B As Integer, C As Integer
Dim D As Integer, E As Integer, F As Integer
Dim I As Long, J As Integer, vN(10) As Integer
Application.ScreenUpdating = False


For J = 1 To 8

vN(J) = Sheets("feuil3").Cells(J).Value 'J avant

Next

J = J - 1

ActiveCell.Offset(0, 17).Select
'Range("a32").Select ' Pour deplacer les combinaisons à l'endroit souhaité
I = 1
For A = 1 To J - 5
For B = A + 1 To J - 4
For C = B + 1 To J - 3
For D = C + 1 To J - 2
For E = D + 1 To J - 1
For F = E + 1 To J
ActiveCell.Offset(0, 0).Value = I
ActiveCell.Offset(0, 1).Value = vN(A)
ActiveCell.Offset(0, 2).Value = vN(B)
ActiveCell.Offset(0, 3).Value = vN(C)
ActiveCell.Offset(0, 4).Value = vN(D)
ActiveCell.Offset(0, 5).Value = vN(E)
ActiveCell.Offset(0, 6).Value = vN(F)
I = I + 1
ActiveCell.Offset(1, 0).Select
Select Case I
Case 60001, 120001, 180001, 240001, 300001, 360001, 420001, 480001, 540001
ActiveCell.Offset(-60000, 8).Select
End Select


Next F
Next E
Next D
Next C
Next B
Next A
Range("A1").Select

End Sub

2)

Sub test_Insert_Rows()
Dim r As Integer
Sheets("Base").Activate
r = Cells(Rows.Count, "A").End(xlUp).Row
numRows = 28
For r = r To 1 Step -1
ActiveSheet.Rows(r + 1).Resize(numRows).Insert
Next r
End Sub

3)

Sub macro_Combs()

For Lig = 1 To 100 Step 28
For Col = 1 To 1

Next
Cells(Lig, 17).Select
Call Combin_6N
Next
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

Discussions similaires

Réponses
4
Affichages
754
Réponses
2
Affichages
466
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…