Boucles - ignorer des colonnes

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

T

thomas4530

Guest
Bonjour,

Je viens d'écrire la partie de code ci-dessous.

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 3 To 14
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i


Excel travaille de la colonne 3 à la colonne 14 - de la ligne 45 à 63.

Je souhaiterais qu'il réalise le même processus sur les colonnes 16 --> 27, 29 --> 40, 42 --> 53, 55 --> 66. Autrement écrit, je veux que l'action ne se réalise pas sur les colonnes 15 - 28 - 41 - 54

Je pourrais évidemment à chaque fois remettre le code en dessous et obtenir les codes

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 16 To 27
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 29 To 40
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 42 To 53
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 55 To 66
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i

Ma question est (vous l'aurez compris), puis-je adapter mon premier code pour que l'action ne se réalise que sur les colonnes que je souhaite prendre en considération ?

Un grand merci à vous,

Thomas
 
Re : Boucles - ignorer des colonnes

Thomas ,

une solution possible , j'ai vu ton fichier arriver ,

j'incorpore la solution dans ton fichier

Code:
Sub A_La_Demande()

For ligne = 1 To 200
Select Case ligne
 Case 14:
     coldeb = 45: colfin = 65
 Case 25
     coldeb = 30: colfin = 35
 For colonne = coldeb To colfin
 'Opération
 Next col
 
End Select
Next ligne
End Sub
 
Re : Boucles - ignorer des colonnes

Thomas ,

Mon exemple était inversé ,

Bon ne connaissant pas le fonctionnement du fichier ,

J'ai incorporé la modif mais pas essayé dans l'environnement .
 

Pièces jointes

Re : Boucles - ignorer des colonnes

:-( :-( :-(

Ca ne fonctionne toujours pas...

Voici le fichier obtenu. Il y a manifestement un problème sur la feuille sauve obtenue grâce au code...

Quelqu'un pour me dépanner ?

Thomas
 

Pièces jointes

Re : Boucles - ignorer des colonnes

Bonjour,

Voilà, j'ai finalisé mon code.

Il me reste donc juste à savoir comment écrire le code ci dessous pour qu'il parcourt également les colonnes
- 16 --> 27,
- 29 --> 40,
- 42 --> 53,
- 55 --> 66.

et non pas uniquement les colonnes 3 à 14 mais en ignorant les colonnes 15 - 28 - 41 - 54.

Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
For i = 3 To 14
deb = 45
fin = 163
For k = 4 To 40
For J = deb To fin Step 41
truc = truc & Cells(J, i)
Next J
Cells(k, i) = truc
deb = deb + 1
fin = fin + 1
truc = ""
Next k
Next i

Une idée ?

Thomas
 
Re : Boucles - ignorer des colonnes

Thomas ,

J'ai enfin compris ce que tu voulais faire , pas forcement expliqué trés clairement dans le fichier ,

Voici donc modifié le bout de code avec des nom de variables dignes de ce nom.

Code:
' Reporter toutes les données sur la première grille du professeur
        Dim Colonne As Integer, LigneEleve As Integer, LigneProf As Integer
        Dim Deblg As Integer, Finlg As Integer, truc As String, Jour As Integer
        
      Deblg = 45
      Finlg = 163 
      For Jour = 0 To 4 'Soit 5 jours
        For Colonne = 3 + 13 * Jour To 14 + 13 * Jour
          For LigneProf = 4 To 40
            For LigneEleve = Deblg To finlg Step 41
              truc = truc & Cells(LigneEleve, Colonne)
            Next LigneEleve
            Cells(LigneProf, Colonne) = truc
            Deblg = Deblg + 1
            Finlg = Finlg + 1
            truc = ""
          Next LigneProf
        Next Colonne
       Next Jour
 
Dernière édition:
Re : Boucles - ignorer des colonnes

Thomas ,

aller vue sous un autre angle

Code:
' Reporter toutes les données sur la première grille du professeur
Dim deb As Integer, fin As Integer, k As Integer, J As Integer, truc As String
Dim DebFin() As Variant, Pointe As Integer
deb = 45
fin = 163
DebFin = Array(3, 14, 16, 27, 29, 40, 42, 53, 55, 66)

For Pointe = 1 To 9 Step 2
  For i = DebFin(Pointe - 1) To DebFin(Pointe)
    For k = 4 To 40
      For J = deb To fin Step 41
        truc = truc & Cells(J, i)
      Next J
      Cells(k, i) = truc
      deb = deb + 1
      fin = fin + 1
      truc = ""
    Next k
  Next i
Next Pointe
 
- 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
4
Affichages
738
Réponses
15
Affichages
793
Réponses
5
Affichages
918
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
293
Réponses
2
Affichages
257
Réponses
3
Affichages
333
Retour