VBA Excel - Problème de boucle for

Résolu/Fermé
saian-sugus - 12 août 2008 à 15:39
 PleaseCallMe - 12 août 2008 à 15:53
Bonjour,

Je suis entrain de créer une boucle qui, pour chaque case vide d'une colonne, regardera la case de la colonne à coté pour me remplir la case vide.

Exemple

en E6:cellule vide
regarde en F6 ou c'est écrit Infotronics
met en E6: systèmes industriels

Option Explicit

Sub filière() 'Met la bonne filière dans les cellules vides
Dim a As Long
Dim nb_lignes As Integer

Voici mon code, mais le programme me dit "Erreur de compilation : Next sans for", je ne vois aucun problème et j'aimerais savoir si vous en voyez 1 svp.. merci d'avance :)

Worksheets("liste").Activate 'Aller sur l'onglet liste
nb_lignes = Range("A65536").End(xlUp).Row 'Trouver le nombre de ligne remplie
For a = 2 To nb_lignes
Cells(a, 5).Select 'Colonne E
If IsEmpty(ActiveCell.Value) Then 'Si la cellule est vide
If Cells(a, 6) = "N-Biotechnologie" Then
ActiveCell.Value = "Technologies du vivant"
Else
If Cells(a, 6) = "Design and Materials" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Infotronics" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Infogest cursus court" Then
ActiveCell.Value = "Informatique de gestion"
Else
If Cells(a, 6) = "N-Technologie alimentaire" Then
ActiveCell.Value = "Technologies du vivant"
Else
If Cells(a, 6) = "Power and Control" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Chimie analytique" Then
ActiveCell.Value = "Technologie du vivant"
Else
ActiveCell.Value = "ERROR!"
Exit For
End If


Next a

End Sub
A voir également:

3 réponses

PleaseCallMe
12 août 2008 à 15:47
Je pense que le problème vient des "End If"
Essaye ce code, quand je compile il n'y a aucune erreur.
Dis moi si le résultat convient.

Sub filière() 'Met la bonne filière dans les cellules vides
Dim a As Long
Dim nb_lignes As Integer

Worksheets("liste").Activate 'Aller sur l'onglet liste
nb_lignes = Range("A65536").End(xlUp).Row 'Trouver le nombre de ligne remplie
For a = 2 To nb_lignes
Cells(a, 5).Select 'Colonne E
If IsEmpty(ActiveCell.Value) Then 'Si la cellule est vide
If Cells(a, 6) = "N-Biotechnologie" Then
ActiveCell.Value = "Technologies du vivant"
Else
If Cells(a, 6) = "Design and Materials" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Infotronics" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Infogest cursus court" Then
ActiveCell.Value = "Informatique de gestion"
Else
If Cells(a, 6) = "N-Technologie alimentaire" Then
ActiveCell.Value = "Technologies du vivant"
Else
If Cells(a, 6) = "Power and Control" Then
ActiveCell.Value = "Systèmes industriels"
Else
If Cells(a, 6) = "Chimie analytique" Then
ActiveCell.Value = "Technologie du vivant"
Else
ActiveCell.Value = "ERROR!"
End If
End If
End If
End If
End If
End If
End If
End If


Next a

End Sub
0
Oups merci de la rapidité, mais entre temps j'ai trouvé la solution.. En effet c'était un problème avec le if !

J'ai simpliment mis des ElseIf à la place du Else et la ligne en dessous If et tout fonctionne..

Mais merci bien d'avoir prêté attention à mon problème :)
0
PleaseCallMe
12 août 2008 à 15:53
Je pense qu'avec des ElseIf ca marche bcp mieux ;)
De rien =)
0