J'utilise cette macro qui me permet de colorer en bleu 9 cellules de la colonne active, j'aimerais pouvoir repeter cette operation plusieurs fois en indiquant le nombre a l'aide d'un textbox.
J'ai essaye d'inclure une boucle pour pouvoir decaler a chaque fois de 3 colonnes sur la droite et executer la macro pour colorier les cellules, mais ça ne fonctionne pas.
Si vous pouviez m'indiquez une piste à suivre.
Merci d''avance
Code:
If ComboBox1.Value = "CP" And ComboBox3.Value = "Journée" Then
x = ActiveCell.Row
y = ActiveCell.Column
Cells(x - 1, y + 0).ClearComments
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Value = ""
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Interior.ColorIndex = 5
Cells(x - 0, y + 1).Value = Sheets("BDD").Cells(ComboBox1.ListIndex + 2, 2)
If TextBox2.Text = "" Then
Unload Saisie
Exit Sub
Else
Cells(x - 0, y + 0).AddComment.Text Text:=TextBox2.Text
End If
Unload Saisie
ComboBox3.Clear
For n = 2 To Sheets("BDD").Range("A65536").End(xlUp).Row
ComboBox3.AddItem Sheets("BDD").Range("K" & n)
Next n
End If
[COLOR="Blue"][B]For Boucle = 1 To CByte([U]TextBox[/U])[/B][/COLOR]
If ComboBox1.Value = "CP" And ComboBox3.Value = "Journée" Then
x = ActiveCell.Row
y = ActiveCell.Column
Cells(x - 1, y + 0).ClearComments
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Value = ""
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Interior.ColorIndex = 5
Cells(x - 0, y + 1).Value = Sheets("BDD").Cells(ComboBox1.ListIndex + 2, 2)
If TextBox2.Text = "" Then
Unload Saisie
Exit Sub
Else
Cells(x - 0, y + 0).AddComment.Text Text:=TextBox2.Text
End If
Unload Saisie
ComboBox3.Clear
For n = 2 To Sheets("BDD").Range("A65536").End(xlUp).Row
ComboBox3.AddItem Sheets("BDD").Range("K" & n)
Next n
End If
[COLOR="Blue"][B]Next Boucle[/B][/COLOR]
Bleu : parti rajouté
TextBox à remplacer par le nom de ta TextBox (cf dans propriété : (name))!
Ne pouvant le tester, je te laisse le soin de le faire et me dire si ça te convient?
Re : Integrer une boucle dans cette macro pour decalage colonne.
Bonjour Excel-lent,
Merci de ta reponse, mais ça ne fonctionne pas, si je met par exemple 2 dans ma textbox , j'ai toujours que les 9 premieres cellules en bleu, en fait il faudrait a chaque boucle decale la cellule active de 3 cellules vers la droite;
enfin je crois !!
[COLOR="DarkSlateGray"][B]x = ActiveCell.Row
y = ActiveCell.Column[/B][/COLOR]
For Boucle = 1 To CByte(TextBox)
If ComboBox1.Value = "CP" And ComboBox3.Value = "Journée" Then
Cells(x - 1, y + 0).ClearComments
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Value = ""
Range(Cells(x - 1, y), Cells(x + 1, y + 2)).Interior.ColorIndex = 5
Cells(x - 0, y + 1).Value = Sheets("BDD").Cells(ComboBox1.ListIndex + 2, 2)
If TextBox2.Text = "" Then
Unload Saisie
Exit Sub
Else
Cells(x - 0, y + 0).AddComment.Text Text:=TextBox2.Text
End If
Unload Saisie
ComboBox3.Clear
For n = 2 To Sheets("BDD").Range("A65536").End(xlUp).Row
ComboBox3.AddItem Sheets("BDD").Range("K" & n)
Next n
End If
[COLOR="Red"][B]y = y + 3[/B][/COLOR]
Next Boucle
J'ai déplacé : x = ActiveCell.Row
y = ActiveCell.Column
à l'extérieur de la boucle
J'ai rajouté : y = y + 3
à l'intérieur de la boucle, pour pouvoir décaler de 3 pas (et puis s'en vont ) vers la droite
j'ai deplace la boucle à l'interieur de la macro car ça ne fonctionnait pas.
Merci de ton aide encore une fois;
Je crois que j'aurais encore besoin de ton aide;
Merci
Re : Integrer une boucle dans cette macro pour decalage colonne.
Bonjour , je suis novice et je cherche de l aide. je pense que le problème d'Yves03 et le mien pourraient être de même nature.
Voila, j'aimerais rapatrier le contenu de pages Web a partir d'une liste d'URL et ce avec un intervalle de 5 colonnes.
j'ai un bout de macro qui ( je pense ) marche mais elle reecrit a chaque fois sur la meme colonne.
A savoir que j'ai mis ma liste d'URL dans la feuil2 a partir de B5 et que cette liste peux evoluer.
je ne sais pas si je me suis bien fait comprendre mais bon..
Sub Datas()
Dim i As Long, ws As Worksheet
Dim c As Range, décalage As String
Set ws = Worksheets("Feuil2")
Worksheets("Feuil1").Select
derlig = ws.[B65536].End(xlUp).Row
For i = 5 To derlig