Test de valeurs de cellules et actions conditionelles
Bonjour,
J'ai exporté, à partir d'un logiciel de planification, les pièces dont j'ai besoin par jour. Cet export me permet, aussi, de ventiler ces besoins en fonction des périodes de la journée (Jour et Nuit).
Cependant, cet export ne montre pas les périodes (ou les dates) ou les besoins sont nuls. Il me faut donc les ajouter.
J'ai écris ce code :
Sub Macro1()
Dim i As Integer
i = 2
Do While Cells(3, i) <> ""
If Cells(3, i).Value = "Jour" Then
ElseIf Cells(3, i + 1).Value = "Jour" Then
Cells(3, i + 1).EntireColumn.Insert
Cells(3, i + 1).Value = "Nuit"
End If
If Cells(3, i).Value = "Nuit" Then
ElseIf Cells(3, i + 1).Value = "Nuit" Then
Cells(3, i + 1).EntireColumn.Insert
Cells(3, i + 1).Value = "Jour"
End If
i = i + 1
Loop
End Sub
Malheureusement, la macro exécute une série d'actions assez peu compréhensibles. Elle confond le jour et la nuit, ce qui induit tout une panoplie d'erreurs diverse. J'ai mis mon fichier en copie, merci d'avance à ceux qui prendront le temps de m'aider.
Bonjour Sblarsksman
Quel est ton souhait exactement, je ne comprends pas ce que tu souhaites ?
Sinon essaye déjà ce code
Sub Macro1()
Dim i As Integer
i = 2
' Tant que la valeur de la cellule (ligne 3 et colonne i) est différente de vide
Do While Cells(3, i) <> ""
' Si la cellule contient "Jour"
If Cells(3, i).Value = "Jour" Then
' ne rien faire
' Sinon si la cellule de droite contient "jour"
ElseIf Cells(3, i + 1).Value = "Jour" Then
' Insérer une colonne
Cells(3, i + 1).EntireColumn.Insert
' Inscrire "Nuit"
Cells(3, i + 1).Value = "Nuit"
' Ne pas oublier d'incrémenter ICI
i = i + 1
End If
' Si la cellule contient "Nuit"
If Cells(3, i).Value = "Nuit" Then
' ne rien faire
' Sinon si la cellule de droite contient "Nuit"
ElseIf Cells(3, i + 1).Value = "Nuit" Then
' Insérer une colonne
Cells(3, i + 1).EntireColumn.Insert
' Inscrire "Jour"
Cells(3, i + 1).Value = "Jour"
' Ne pas oublier d'incrémenter ICI
i = i + 1
End If
i = i + 1
Loop
End SubA+
Bonjour BrunoM45,
Je te remercie de prendre le temps de me répondre.
En fait ce que je veux faire est assez simple en théorie.
Dans mon fichier, tu peux voir que sur la ligne 3, on trouve une succession d’occurrences à la distribution aléatoire : (Jour Nuit Jour Jour Jour Nuit Jour Nuit Jour Nuit Jour Nuit Jour Nuit Jour Nuit Nuit).
J’aimerai, tout simplement, faire succéder une période de jour à une période de nuit et inversement....
Bonjour,
voici une macro qui va insérer une colonne jour entre 2 colonnes nuit et une colonne nuit entre 2 colonnes jour.
Sub Macro1()
Dim i As Integer
i = 2
Do While Cells(3, i) <> ""
If Cells(3, i) = Cells(3, i + 1) Then
Cells(3, i + 1).EntireColumn.Insert
If Cells(3, i) = "Jour" Then
Cells(3, i + 1) = "Nuit"
Else
Cells(3, i + 1) = "Jour"
End If
End If
i = i + 1
Loop
End SubMerci beaucoup pour votre aide !