Boucles - ignorer des colonnes

thomas4530

XLDnaute Junior
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
 

camarchepas

XLDnaute Barbatruc
Re : Boucles - ignorer des colonnes

Bonjour Thomas ,

Oui , tu peux ,

Reste à savoir comment tu renseignes les colonnes à prendre en compte et surtout ,

mis dans un fichier Excel et posté sur ce site ce serait un vrai plus

Cordialement
 

camarchepas

XLDnaute Barbatruc
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
 

camarchepas

XLDnaute Barbatruc
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

  • Central - 14-06-29.xlsm
    222 KB · Affichages: 33
  • Central - 14-06-29.xlsm
    222 KB · Affichages: 29
  • Central - 14-06-29.xlsm
    222 KB · Affichages: 27

thomas4530

XLDnaute Junior
Re : Boucles - ignorer des colonnes

Malheureusement cela ne fonctionne pas...

Lorsque le lance le module, il ne reporte pas données C,D,E 86 et P,Q,R 87 alors que la condition est bien réunie.

Une idée ?

Thomas
 

Pièces jointes

  • Central - 14-06-29 - forum.xlsm
    267.8 KB · Affichages: 31

thomas4530

XLDnaute Junior
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

  • Central - 14-06-29.xlsm
    238.6 KB · Affichages: 20
  • Central - 14-06-29.xlsm
    238.6 KB · Affichages: 30
  • Central - 14-06-29.xlsm
    238.6 KB · Affichages: 29

thomas4530

XLDnaute Junior
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
 

camarchepas

XLDnaute Barbatruc
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:

thomas4530

XLDnaute Junior
Re : Boucles - ignorer des colonnes

Hello camarchepas,

Je viens de tester... cela ne fonctionne toujours pas :-(

Voici un fichier qui fonctionne mais dont le code est répétitif... :-s

Un tout grand merci,

Thomas
 

Pièces jointes

  • Central - 14-06-30.xlsm
    718.7 KB · Affichages: 32

camarchepas

XLDnaute Barbatruc
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
 

Statistiques des forums

Discussions
312 492
Messages
2 088 905
Membres
103 982
dernier inscrit
krakencolas