Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Offset quand tu nous tiens ;)

4 réponses
Avatar
Zigute
Bjr à tous,

J'ai un souci avec le offset d'une cellule.
Après avoir selectionné une cellule je souhaite que cette dernière passe en
jaune ça pas de problème.
Par contre je souhaite mettre dans la colonne R la valeur "gloub" au meme
niveau que la cellule selectionnée auparavant.
Ex. : Sur cellule "I1" il y a une cellule vide que je remplie en jaune
ensuite sur la meme ligne dans la colonne "R"
Je cherche à ajouter la valeur "Gloub".
J'utilise un offset : Cell.Offset(rowOffset:=(VaLig), columnOffset:=9).Value
= "Gloubs"
Ce dernier s'affiche dans la bonne colonne MAIS pas dans la bonne ligne.
J'ai cherché dans differents sites et je n'ai pas trouvé la solution : je
tourne en rond.

Avez vous une idée ?

Merci pour votre aide précieuse

Code ci-dessous :
Sub SubGloubs()
' --- Souhait clt : j'aimerai ecrire une macro qui permet que chaque fois
qu'une _
cellule de la colonne I n'est pas vide le texte "gloups" s'écrive _
sur la meme ligne dans la colonne R

' ~~~ Traduction : si cellules dans colonne I est non vide saisir texte
"Gloub" dans colonne R sur ligne selectionnée.

' ~~~ Déclaration de variables
Dim Fin_Col ' ~~~ Contient valeur de la dernière colonne
Dim VaLig ' ~~~ Contient valeur de la ligne
Dim Test
Dim ValCol
' --- A compléter
' --- A compléter
Fin_Col = ""
VaLig = "0"
Test = "0"

Range("I1").Select

' --- Compteur qui permet de mémoriser le nombre de ligne + 1
Fin_Col = Range("I1").SpecialCells(xlCellTypeLastCell).Row
Fin_Col = Fin_Col + 1
MsgBox "Dernière cellule de la colonne utilisée : " & Fin_Col

For Each Cell In Range(Range("I1"), Range("I65536").End(xlDown))
MsgBox Cell.Row
MsgBox Fin_Col
VaLig = Cell.Row
MsgBox VaLig
ValCol = Cell.Column

' --- Condition qui permet de vérifier si on arrive à la fin de
la colonne
If Cell.Row < Fin_Col Then
If IsEmpty(Cell) = True Then
Cell.Select
Cell.Interior.Color = RGB(255, 204, 153) ' --- Jaune
MsgBox " = " & (VaLig)

Test = Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Address
MsgBox " = " & Test
Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value = "Gloub"

End If
Else

' --- Si on arrive à la fin du tableau, on sort de la boucle
Exit For
End If

' --- On passe à la cellule suivante
Next Cell

' ---
' Fin_Col = ""
' Fin_Col = Fin_Col + 1
' MsgBox "Fin Sub : valeur Fin col : " & Fin_Col


End Sub

4 réponses

Avatar
Jacky
Bonsoir,
Ceci peut-être:
'------
Cells(ActiveCell.Row, 18) = "Gloub"
'--------
Salutations
JJ

"Zigute" a écrit dans le message de
news:
Bjr à tous,

J'ai un souci avec le offset d'une cellule.
Après avoir selectionné une cellule je souhaite que cette dernière passe
en

jaune ça pas de problème.
Par contre je souhaite mettre dans la colonne R la valeur "gloub" au meme
niveau que la cellule selectionnée auparavant.
Ex. : Sur cellule "I1" il y a une cellule vide que je remplie en jaune
ensuite sur la meme ligne dans la colonne "R"
Je cherche à ajouter la valeur "Gloub".
J'utilise un offset : Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value

= "Gloubs"
Ce dernier s'affiche dans la bonne colonne MAIS pas dans la bonne ligne.
J'ai cherché dans differents sites et je n'ai pas trouvé la solution : je
tourne en rond.

Avez vous une idée ?

Merci pour votre aide précieuse

Code ci-dessous :
Sub SubGloubs()
' --- Souhait clt : j'aimerai ecrire une macro qui permet que chaque fois
qu'une _
cellule de la colonne I n'est pas vide le texte "gloups" s'écrive _
sur la meme ligne dans la colonne R

' ~~~ Traduction : si cellules dans colonne I est non vide saisir texte
"Gloub" dans colonne R sur ligne selectionnée.

' ~~~ Déclaration de variables
Dim Fin_Col ' ~~~ Contient valeur de la dernière colonne
Dim VaLig ' ~~~ Contient valeur de la ligne
Dim Test
Dim ValCol
' --- A compléter
' --- A compléter
Fin_Col = ""
VaLig = "0"
Test = "0"

Range("I1").Select

' --- Compteur qui permet de mémoriser le nombre de ligne + 1
Fin_Col = Range("I1").SpecialCells(xlCellTypeLastCell).Row
Fin_Col = Fin_Col + 1
MsgBox "Dernière cellule de la colonne utilisée : " & Fin_Col

For Each Cell In Range(Range("I1"),
Range("I65536").End(xlDown))

MsgBox Cell.Row
MsgBox Fin_Col
VaLig = Cell.Row
MsgBox VaLig
ValCol = Cell.Column

' --- Condition qui permet de vérifier si on arrive à la fin
de

la colonne
If Cell.Row < Fin_Col Then
If IsEmpty(Cell) = True Then
Cell.Select
Cell.Interior.Color = RGB(255, 204, 153) ' ---
Jaune

MsgBox " = " & (VaLig)

Test = Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Address
MsgBox " = " & Test
Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value = "Gloub"

End If
Else

' --- Si on arrive à la fin du tableau, on sort de la
boucle

Exit For
End If

' --- On passe à la cellule suivante
Next Cell

' ---
' Fin_Col = ""
' Fin_Col = Fin_Col + 1
' MsgBox "Fin Sub : valeur Fin col : " & Fin_Col


End Sub





Avatar
Jacky
Oupppss!!!
Je n'ai pas vu le code......
S' il s'agit de peinturlurer en jaune la colonne I quand les cellules sont
vides et d'incrire dans la même ligne en colonne R le mot "Gloub"
Ceci devrait faire:
'----------
Sub jj()
derlg = Range("I65536").End(3).Row 'dernière ligne non vide de la colonne
i
For Each C In Range("I1:I" & derlg)
If IsEmpty(C) Then
C.Interior.ColorIndex = 6
Cells(C.Row, 18) = "Gloub"
End If
Next
End Sub
'--------
Salutations
JJ

"Zigute" a écrit dans le message de
news:
Bjr à tous,

J'ai un souci avec le offset d'une cellule.
Après avoir selectionné une cellule je souhaite que cette dernière passe
en

jaune ça pas de problème.
Par contre je souhaite mettre dans la colonne R la valeur "gloub" au meme
niveau que la cellule selectionnée auparavant.
Ex. : Sur cellule "I1" il y a une cellule vide que je remplie en jaune
ensuite sur la meme ligne dans la colonne "R"
Je cherche à ajouter la valeur "Gloub".
J'utilise un offset : Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value

= "Gloubs"
Ce dernier s'affiche dans la bonne colonne MAIS pas dans la bonne ligne.
J'ai cherché dans differents sites et je n'ai pas trouvé la solution : je
tourne en rond.

Avez vous une idée ?

Merci pour votre aide précieuse

Code ci-dessous :
Sub SubGloubs()
' --- Souhait clt : j'aimerai ecrire une macro qui permet que chaque fois
qu'une _
cellule de la colonne I n'est pas vide le texte "gloups" s'écrive _
sur la meme ligne dans la colonne R

' ~~~ Traduction : si cellules dans colonne I est non vide saisir texte
"Gloub" dans colonne R sur ligne selectionnée.

' ~~~ Déclaration de variables
Dim Fin_Col ' ~~~ Contient valeur de la dernière colonne
Dim VaLig ' ~~~ Contient valeur de la ligne
Dim Test
Dim ValCol
' --- A compléter
' --- A compléter
Fin_Col = ""
VaLig = "0"
Test = "0"

Range("I1").Select

' --- Compteur qui permet de mémoriser le nombre de ligne + 1
Fin_Col = Range("I1").SpecialCells(xlCellTypeLastCell).Row
Fin_Col = Fin_Col + 1
MsgBox "Dernière cellule de la colonne utilisée : " & Fin_Col

For Each Cell In Range(Range("I1"),
Range("I65536").End(xlDown))

MsgBox Cell.Row
MsgBox Fin_Col
VaLig = Cell.Row
MsgBox VaLig
ValCol = Cell.Column

' --- Condition qui permet de vérifier si on arrive à la fin
de

la colonne
If Cell.Row < Fin_Col Then
If IsEmpty(Cell) = True Then
Cell.Select
Cell.Interior.Color = RGB(255, 204, 153) ' ---
Jaune

MsgBox " = " & (VaLig)

Test = Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Address
MsgBox " = " & Test
Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value = "Gloub"

End If
Else

' --- Si on arrive à la fin du tableau, on sort de la
boucle

Exit For
End If

' --- On passe à la cellule suivante
Next Cell

' ---
' Fin_Col = ""
' Fin_Col = Fin_Col + 1
' MsgBox "Fin Sub : valeur Fin col : " & Fin_Col


End Sub





Avatar
Zigute
Bonsoir,

Chapeau bas, merci.
Mais pourquoi le (3) sur cette ligne ?
-> derlg = Range("I65536").End(3).Row
Zigute.


Oupppss!!!
Je n'ai pas vu le code......
S' il s'agit de peinturlurer en jaune la colonne I quand les cellules sont
vides et d'incrire dans la même ligne en colonne R le mot "Gloub"
Ceci devrait faire:
'----------
Sub jj()
derlg = Range("I65536").End(3).Row 'dernière ligne non vide de la colonne
i
For Each C In Range("I1:I" & derlg)
If IsEmpty(C) Then
C.Interior.ColorIndex = 6
Cells(C.Row, 18) = "Gloub"
End If
Next
End Sub
'--------
Salutations
JJ

"Zigute" a écrit dans le message de
news:
Bjr à tous,

J'ai un souci avec le offset d'une cellule.
Après avoir selectionné une cellule je souhaite que cette dernière passe
en

jaune ça pas de problème.
Par contre je souhaite mettre dans la colonne R la valeur "gloub" au meme
niveau que la cellule selectionnée auparavant.
Ex. : Sur cellule "I1" il y a une cellule vide que je remplie en jaune
ensuite sur la meme ligne dans la colonne "R"
Je cherche à ajouter la valeur "Gloub".
J'utilise un offset : Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value

= "Gloubs"
Ce dernier s'affiche dans la bonne colonne MAIS pas dans la bonne ligne.
J'ai cherché dans differents sites et je n'ai pas trouvé la solution : je
tourne en rond.

Avez vous une idée ?

Merci pour votre aide précieuse

Code ci-dessous :
Sub SubGloubs()
' --- Souhait clt : j'aimerai ecrire une macro qui permet que chaque fois
qu'une _
cellule de la colonne I n'est pas vide le texte "gloups" s'écrive _
sur la meme ligne dans la colonne R

' ~~~ Traduction : si cellules dans colonne I est non vide saisir texte
"Gloub" dans colonne R sur ligne selectionnée.

' ~~~ Déclaration de variables
Dim Fin_Col ' ~~~ Contient valeur de la dernière colonne
Dim VaLig ' ~~~ Contient valeur de la ligne
Dim Test
Dim ValCol
' --- A compléter
' --- A compléter
Fin_Col = ""
VaLig = "0"
Test = "0"

Range("I1").Select

' --- Compteur qui permet de mémoriser le nombre de ligne + 1
Fin_Col = Range("I1").SpecialCells(xlCellTypeLastCell).Row
Fin_Col = Fin_Col + 1
MsgBox "Dernière cellule de la colonne utilisée : " & Fin_Col

For Each Cell In Range(Range("I1"),
Range("I65536").End(xlDown))

MsgBox Cell.Row
MsgBox Fin_Col
VaLig = Cell.Row
MsgBox VaLig
ValCol = Cell.Column

' --- Condition qui permet de vérifier si on arrive à la fin
de

la colonne
If Cell.Row < Fin_Col Then
If IsEmpty(Cell) = True Then
Cell.Select
Cell.Interior.Color = RGB(255, 204, 153) ' ---
Jaune

MsgBox " = " & (VaLig)

Test = Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Address
MsgBox " = " & Test
Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value = "Gloub"

End If
Else

' --- Si on arrive à la fin du tableau, on sort de la
boucle

Exit For
End If

' --- On passe à la cellule suivante
Next Cell

' ---
' Fin_Col = ""
' Fin_Col = Fin_Col + 1
' MsgBox "Fin Sub : valeur Fin col : " & Fin_Col


End Sub










Avatar
FxM
Bonjour,

.end(3) équivaut à .end(xlup)

@+
FxM

Bonsoir,

Chapeau bas, merci.
Mais pourquoi le (3) sur cette ligne ?
-> derlg = Range("I65536").End(3).Row
Zigute.


Oupppss!!!
Je n'ai pas vu le code......
S' il s'agit de peinturlurer en jaune la colonne I quand les cellules sont
vides et d'incrire dans la même ligne en colonne R le mot "Gloub"
Ceci devrait faire:
'----------
Sub jj()
derlg = Range("I65536").End(3).Row 'dernière ligne non vide de la colonne
i
For Each C In Range("I1:I" & derlg)
If IsEmpty(C) Then
C.Interior.ColorIndex = 6
Cells(C.Row, 18) = "Gloub"
End If
Next
End Sub
'--------
Salutations
JJ

"Zigute" a écrit dans le message de
news:
Bjr à tous,

J'ai un souci avec le offset d'une cellule.
Après avoir selectionné une cellule je souhaite que cette dernière passe
en

jaune ça pas de problème.
Par contre je souhaite mettre dans la colonne R la valeur "gloub" au meme
niveau que la cellule selectionnée auparavant.
Ex. : Sur cellule "I1" il y a une cellule vide que je remplie en jaune
ensuite sur la meme ligne dans la colonne "R"
Je cherche à ajouter la valeur "Gloub".
J'utilise un offset : Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value

= "Gloubs"
Ce dernier s'affiche dans la bonne colonne MAIS pas dans la bonne ligne.
J'ai cherché dans differents sites et je n'ai pas trouvé la solution : je
tourne en rond.

Avez vous une idée ?

Merci pour votre aide précieuse

Code ci-dessous :
Sub SubGloubs()
' --- Souhait clt : j'aimerai ecrire une macro qui permet que chaque fois
qu'une _
cellule de la colonne I n'est pas vide le texte "gloups" s'écrive _
sur la meme ligne dans la colonne R

' ~~~ Traduction : si cellules dans colonne I est non vide saisir texte
"Gloub" dans colonne R sur ligne selectionnée.

' ~~~ Déclaration de variables
Dim Fin_Col ' ~~~ Contient valeur de la dernière colonne
Dim VaLig ' ~~~ Contient valeur de la ligne
Dim Test
Dim ValCol
' --- A compléter
' --- A compléter
Fin_Col = ""
VaLig = "0"
Test = "0"

Range("I1").Select

' --- Compteur qui permet de mémoriser le nombre de ligne + 1
Fin_Col = Range("I1").SpecialCells(xlCellTypeLastCell).Row
Fin_Col = Fin_Col + 1
MsgBox "Dernière cellule de la colonne utilisée : " & Fin_Col

For Each Cell In Range(Range("I1"),
Range("I65536").End(xlDown))

MsgBox Cell.Row
MsgBox Fin_Col
VaLig = Cell.Row
MsgBox VaLig
ValCol = Cell.Column

' --- Condition qui permet de vérifier si on arrive à la fin
de

la colonne
If Cell.Row < Fin_Col Then
If IsEmpty(Cell) = True Then
Cell.Select
Cell.Interior.Color = RGB(255, 204, 153) ' ---
Jaune

MsgBox " = " & (VaLig)

Test = Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Address
MsgBox " = " & Test
Cell.Offset(rowOffset:=(VaLig),
columnOffset:=9).Value = "Gloub"

End If
Else

' --- Si on arrive à la fin du tableau, on sort de la
boucle

Exit For
End If

' --- On passe à la cellule suivante
Next Cell

' ---
' Fin_Col = ""
' Fin_Col = Fin_Col + 1
' MsgBox "Fin Sub : valeur Fin col : " & Fin_Col


End Sub