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.

27essai.xlsm (18.42 Ko)

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 Sub

A+

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 Sub

Merci beaucoup pour votre aide !

Rechercher des sujets similaires à "test valeurs actions conditionelles"