OVH Cloud OVH Cloud

Probleme de boucle en VBA

19 réponses
Avatar
verdi33
Bonjour à tous,

J'ai un petit probléme de conception pour faire une boucle en VBA.
Voici mon probléme :

Je souhaite balayer la colonne A (de la ligne 10 à 500) et inserer une
ligne vierge chaque fois que la valeur de la cellule A(n) est différente
de la valeur de la cellule A(n+1). Donc j'ai écris ce bout de code et le
curseur ne se déplace pas.... je ne trouve pas mon erreur, pouvez vous
m'aider

Dim Cell As Range
Dim valeur As String


Set Cell = Range("A10")
valeur = ActiveCell.Value

For Each Cell In Range("a10,a500")
If Cell.Value <> valeur Then
valeur = Cell.Value
Cell.EntireRow.Insert
End If
Next Cell


Par avance, merci

Verdi33

9 réponses

1 2
Avatar
Jacky
Raciste!


MonseiGNEUUUUUR ..... Au secours!!!!!!!!

--
Salutations
JJ


"LSteph" a écrit dans le message de news:

Raciste!

Hé hééé
;o))
re oupsss, et grrr...
j'ai oublié le end with ......
;o))

Et contrôler les blancs ???






Avatar
LSteph
Fi donc , sa ferveur!
:(
...pour une fois que je retiens quelquechose

Et j'entends siffler les scuds...

;o)

@+


Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

On vous l'a dit et répété...
;-) pour ceux à qui on l'a déjà dit et répété
Cell
ce mot Cell
est un mot
Ré.ser.vé


NON !!! NON !!!
Fred l'a encore re-dit il y a deux jours !!!!
Absolument pas. Ni le mot 'cellule' ni le mot 'cell' ne sont des mots clés
réservés du langage VBA ! (Alors que Cells l'est)
Attention de ne pas véhiculer trop d'idées reçues non vérifiées ... elles sont
archivées comme les autres et peuvent induire les utilisateurs en erreur pendant
des années !..






Avatar
Jacky
Bonsoir Modeste

Absolument pas. Ni le mot 'cellule' ni le mot 'cell' ne sont des mots clés


Entièrement d'accord, mais......
Perso, pour un petit "S" de trop à "cell" j'ai subi un superbe plantage (et
quelques heures de boulot foutues) il y a quelques années, depuis, sauf pour
"Cells(x,y)" je me refuse à utiliser "Cell" comme variable
--
Salutations
JJ


"Modeste" a écrit dans le message de news:

Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

On vous l'a dit et répété...
;-) pour ceux à qui on l'a déjà dit et répété
Cell
ce mot Cell
est un mot
Ré.ser.vé


NON !!! NON !!!
Fred l'a encore re-dit il y a deux jours !!!!
Absolument pas. Ni le mot 'cellule' ni le mot 'cell' ne sont des mots clés
réservés du langage VBA ! (Alors que Cells l'est)
Attention de ne pas véhiculer trop d'idées reçues non vérifiées ... elles
sont
archivées comme les autres et peuvent induire les utilisateurs en erreur
pendant
des années !..



--
--
@+
;o)))





Avatar
LSteph
Salut Jacky,

A moins que,....
il est de quelle année?
.
;o))
Et contrôler les blancs ???




Tu veux dire vide, cela marche aussi!non?

lSteph


Avatar
Modeste
Bonsour® Jacky avec ferveur ;o))) vous nous disiez :

je me refuse à utiliser "Cell"
comme variable


De l'interet d'utiliser des noms explicites ;o)))
on ne compte plus les ennuis crées par la variable : I

moi j'avais été sévérement piègé par une variable nommée : l (elle)
je n'avais su trouver l'erreur qu'aprés avoir réécrit le code proprement
ex : l +1= 3
"elle" l vaut 2

--
--
@+
;o)))

Avatar
MichDenis
Aurait-il rebaptisé la barre d'outils du menu contextuel (Cell) récemment ?
Ceci étant dit, un "nom" ce n'est pas un objet et je ne crois pas que cela
affecte la macro... dont en voici une petite :

'----------------------------------------
Sub test()

Dim a As Long, Nb As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter !
Nb = .Range("A10:A500").Rows.Count
Do
If .Range("A10").Offset(a) <> .Range("A10").Offset(a + 1) Then
.Range("A10").Offset(a + 1).EntireRow.Insert
a = a + 2
Nb = Nb + 1
Else
a = a + 1
End If
Loop Until a >= Nb
End With
End Sub
'----------------------------------------




"Modeste" a écrit dans le message de news:

Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

On vous l'a dit et répété...
;-) pour ceux à qui on l'a déjà dit et répété
Cell
ce mot Cell
est un mot
Ré.ser.vé


NON !!! NON !!!
Fred l'a encore re-dit il y a deux jours !!!!
Absolument pas. Ni le mot 'cellule' ni le mot 'cell' ne sont des mots clés
réservés du langage VBA ! (Alors que Cells l'est)
Attention de ne pas véhiculer trop d'idées reçues non vérifiées ... elles sont
archivées comme les autres et peuvent induire les utilisateurs en erreur pendant
des années !..



--
--
@+
;o)))

Avatar
Modeste
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

A moins que,....
il est de quelle année?


le monsieur il disait 1472 pour l'année

;o))
Et contrôler les blancs ???




Tu veux dire vide, cela marche aussi!non?


:;o)))
la part des anges ... non ???
http://fr.wikipedia.org/wiki/Part_des_anges




--
--
@+
;o)))



Avatar
verdi33
Merci beaucoup pour vos réponses, j'ai essayé vos codes et j'ai eu le
résultat que j'attendais

Verdi33

..oupss en plus faudrait boucler en remontant...

Dim i as long
Dim valeur As String
valeur¬tivecell.value
For i = 500 to 10 step-1
with Cells(i,1)
if .value<>valeur then
valeur=.value
.entirerow.insert
end if
next i


'lSteph


Bonjour,

On vous l'a dit et répété...
;-) pour ceux à qui on l'a déjà dit et répété
Cell
ce mot Cell
est un mot
Ré.ser.vé



Dim c As Range
Dim valeur As String


Set Cell = Range("A10")
valeur = ActiveCell.Value
For Each c In Range("a10,a500")
If c.Value <> valeur Then
valeur = c.Value
c.EntireRow.Insert
End If
Next c

'lSteph

Bonjour à tous,

J'ai un petit probléme de conception pour faire une boucle en VBA.
Voici mon probléme :

Je souhaite balayer la colonne A (de la ligne 10 à 500) et inserer
une ligne vierge chaque fois que la valeur de la cellule A(n) est
différente de la valeur de la cellule A(n+1). Donc j'ai écris ce bout
de code et le curseur ne se déplace pas.... je ne trouve pas mon
erreur, pouvez vous m'aider

Dim Cell As Range
Dim valeur As String


Set Cell = Range("A10")
valeur = ActiveCell.Value

For Each Cell In Range("a10,a500")
If Cell.Value <> valeur Then
valeur = Cell.Value
Cell.EntireRow.Insert
End If
Next Cell


Par avance, merci

Verdi33






Avatar
Jacky
Re..
il est de quelle année?
;o))

J'avoue que j'ai mis un moment pour décoder.

J'ai une préférence pour Pinot Gris 2003
Mais....
Tu veux dire vide, cela marche aussi!non?
Blanc==>vide

Pas bon, ça!
--
Salutations
JJ


"LSteph" a écrit dans le message de news:

Salut Jacky,

A moins que,....
il est de quelle année?
.
;o))
Et contrôler les blancs ???




Tu veux dire vide, cela marche aussi!non?

lSteph




1 2