Bonjour à tous,
Comment créer une macro qui procède la manière suivante :
1. Stocker dans variablenonvideA la valeur C58 si Range("C58").Value = "Oui" et la valeur 0 si Range("C58").Value = "Non" ou Range("C58").Value = "" ou Range("C58").Value = 0, stocker dans variablenonvideB la valeur D58 si Range("D58").Value = "Oui" et la valeur 0 si Range("D58").Value = "Non" ou Range("D58").Value = "" ou Range("D58").Value = 0 et ainsi de suite jusqu'à la dernière cellule de Range("C58:FC58, C73:F73, C88:F88, C103:E103") (il doit y avoir en tout 15 cellules) - Dim variablesnonvides as Range.
3. Supprimer toutes les variablesnonvides dont la valeur est égale à 0
4. Stocker dans variablecompte (Dim variablecompte As Byte) le nombre de variablesnonvides restantes.
5. Exécuter le code suivant :
6a. Pour la première variablenonvide restante, stocker dans variablerefA1 la valeur variablenonvide.Offset(-9, 0), dans variablerefA2 la valeur variablenonvide.Offset(-11, 0), dans variablerefA4 la valeur variablenonvide.Offset(-10, 0), dans la variable variablerefA3 la valeur C110 et exécuter le code suivant :
6b. Pour la deuxième variablenonvide restante, stocker dans variablerefB1 la valeur variablenonvide.Offset(-9, 0), dans variablerefB2 la valeur variablenonvide.Offset(-11, 0), dans variablerefB4 la valeur variablenonvide.Offset(-10, 0), dans la variable variablerefB3 la valeur D110 et exécuter le code suivant :
6c. Et ainsi de suite jusqu'à la dernière variablenonvide restante, les variableref_3 prennent successivement les valeurs de Range("C110:F110, C120:F120, C130:F130, C140:E140").
Voilà, ce n'est pas si difficile en soi, mais il me manque deux choses pour parvenir à terminer ce code : création de boucles et création automatique de variables.
Je vous remercie donc à l'avance,
Youri
PS : j'ai testé le code avec variablecompte et il fonctionne. Par contre, je ne sais pas si on peut écrire par exemple variablerefA1.value (je n'ai pas testé cette possibilité). Par contre je suis certain que le code avec les variablesref fonctionnait avec des Range("...").Value.
Comment créer une macro qui procède la manière suivante :
1. Stocker dans variablenonvideA la valeur C58 si Range("C58").Value = "Oui" et la valeur 0 si Range("C58").Value = "Non" ou Range("C58").Value = "" ou Range("C58").Value = 0, stocker dans variablenonvideB la valeur D58 si Range("D58").Value = "Oui" et la valeur 0 si Range("D58").Value = "Non" ou Range("D58").Value = "" ou Range("D58").Value = 0 et ainsi de suite jusqu'à la dernière cellule de Range("C58:FC58, C73:F73, C88:F88, C103:E103") (il doit y avoir en tout 15 cellules) - Dim variablesnonvides as Range.
3. Supprimer toutes les variablesnonvides dont la valeur est égale à 0
4. Stocker dans variablecompte (Dim variablecompte As Byte) le nombre de variablesnonvides restantes.
5. Exécuter le code suivant :
Code:
If variablecompte > 12 Then
If Rows("107:147").EntireRow.Hidden = True Then
Rows("107:147").EntireRow.Hidden = False
End If
End If
If variablecompte > 8 And variablecompte < 13 Then
If Rows("107:137").EntireRow.Hidden = True Then
Rows("107:137").EntireRow.Hidden = False
End If
End If
If variablecompte > 4 And variablecompte < 9 Then
If Rows("107:127").EntireRow.Hidden = True Then
Rows("107:127").EntireRow.Hidden = False
End If
End If
If variablecompte > 0 And variablecompte < 5 Then
If Rows("107:117").EntireRow.Hidden = True Then
Rows("107:117").EntireRow.Hidden = False
End If
End If
If variablecompte = 0 Then
If Rows("107:127").EntireRow.Hidden = False Then
Rows("107:127").EntireRow.Hidden = True
End If
End If
Code:
Dim variablerefA1 As Range
Dim variablerefA2 As Range
Dim variablerefA3 As Range
Dim variablerefA4 As Range
If variablerefA1.Value <> 0 And variablerefA1.Value <> "" Then
If variablerefA2.Value <> 0 And variablerefA2.Value <> "" Then
variablerefA3.Value = Trim(Trim(variablerefA1.Value) & " " & Trim(variablerefA2.Value) & " " & Trim(variablerefA4.Value))
ElseIf variablerefA4.Value <> 0 And variablerefA4.Value <> "" Then
variablerefA3.Value = Trim(variablerefA4.Value)
Else
variablerefA3.Value = "Contact 1"
End If
ElseIf (variablerefA2.Value <> 0 And variablerefA2.Value <> "") Or (variablerefA4.Value <> 0 And variablerefA4.Value <> "") Then
variablerefA3.Value = Trim(Trim(variablerefA2.Value) & " " & Trim(variablerefA4.Value))
Else
variablerefA3.Value = "Contact 1"
End If
Code:
Dim variablerefB1 As Range
Dim variablerefB2 As Range
Dim variablerefB3 As Range
Dim variablerefB4 As Range
If variablerefB1.Value <> 0 And variablerefB1.Value <> "" Then
If variablerefB2.Value <> 0 And variablerefB2.Value <> "" Then
variablerefB3.Value = Trim(Trim(variablerefB1.Value) & " " & Trim(variablerefB2.Value) & " " & Trim(variablerefB4.Value))
ElseIf variablerefB4.Value <> 0 And variablerefB4.Value <> "" Then
variablerefB3.Value = Trim(variablerefB4.Value)
Else
variablerefB3.Value = "Contact 1"
End If
ElseIf (variablerefB2.Value <> 0 And variablerefB2.Value <> "") Or (variablerefB4.Value <> 0 And variablerefB4.Value <> "") Then
variablerefB3.Value = Trim(Trim(variablerefB2.Value) & " " & Trim(variablerefB4.Value))
Else
variablerefB3.Value = "Contact 1"
End If
Voilà, ce n'est pas si difficile en soi, mais il me manque deux choses pour parvenir à terminer ce code : création de boucles et création automatique de variables.
Je vous remercie donc à l'avance,
Youri
PS : j'ai testé le code avec variablecompte et il fonctionne. Par contre, je ne sais pas si on peut écrire par exemple variablerefA1.value (je n'ai pas testé cette possibilité). Par contre je suis certain que le code avec les variablesref fonctionnait avec des Range("...").Value.