Invalid Next controle variable reference

Le
YeTi
Bonjour à tous,

J'ai un problème avec un Next apparemment
Ce a quoi j'aimerais arriver c'est que si une cellule de la colonne C = ü,
alors on la copie et on la colle seulement si une cellule de la ligne 2
(entre la 15ème et la 20ème colonne) est vide.

Lors que j'exécute avec la macro ci-dessous, un bug apparaît "Invalid Next
controle variable reference" et me souligne le "Next r".

Un petit peu d'aide svp?

Merci d'avance!
YeTi


For r = 2 To 50 'row
For pc = 15 To 20 'paste in column

If Cells(r, 3) = "ü" Then
Cells(r, 1).Copy
End If

If Cells(2, pc) = "" Then
Cells(2, pc).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

End If
Next r
Next pc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #17408301
Bonjour.
Sans regarder ton code plus avant, les boucles ne doivent pas se croiser, la
seconde doit rester à l'intérieur. Si tu écris :

For r = 2 To 50 'row
For pc = 15 To 20 'paste in column

tu dois mettre en retour de boucles :

Next pc
Next r

--
Cordialement.
Daniel
"YeTi"
Bonjour à tous,

J'ai un problème avec un Next apparemment...
Ce a quoi j'aimerais arriver c'est que si une cellule de la colonne C = ü,
alors on la copie et on la colle seulement si une cellule de la ligne 2
(entre la 15ème et la 20ème colonne) est vide.

Lors que j'exécute avec la macro ci-dessous, un bug apparaît "Invalid Next
controle variable reference" et me souligne le "Next r".

Un petit peu d'aide svp?

Merci d'avance!
YeTi


For r = 2 To 50 'row
For pc = 15 To 20 'paste in column

If Cells(r, 3) = "ü" Then
Cells(r, 1).Copy
End If

If Cells(2, pc) = "" Then
Cells(2, pc).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

End If
Next r
Next pc


YeTi
Le #17408601
Arf...

Merci beaucoup!
J'ai néanmoins tjrs un petit soucis.

Ma boucle copie donc tous les noms qui ont un "ü" dans la colonne 3 et les
colle dans la plage O2-S2.

Le problème c'est que si y a un seul nom qui a "ü", il est collé sur toute
la plage, alors que j'aimerais qu'il ne soit collé que dans la première
cellule (O2). Idem lorsqu'il y a plusieurs "ü", il colle le dernier nom sur
toute la plage au lieu d'un nom par cellule.

Comment remédier à ca?

Merci de votre aide

YeTi


"Daniel.C" wrote:

Bonjour.
Sans regarder ton code plus avant, les boucles ne doivent pas se croiser, la
seconde doit rester à l'intérieur. Si tu écris :

For r = 2 To 50 'row
For pc = 15 To 20 'paste in column

tu dois mettre en retour de boucles :

Next pc
Next r

--
Cordialement.
Daniel
"YeTi"
> Bonjour à tous,
>
> J'ai un problème avec un Next apparemment...
> Ce a quoi j'aimerais arriver c'est que si une cellule de la colonne C = ü,
> alors on la copie et on la colle seulement si une cellule de la ligne 2
> (entre la 15ème et la 20ème colonne) est vide.
>
> Lors que j'exécute avec la macro ci-dessous, un bug apparaît "Invalid Next
> controle variable reference" et me souligne le "Next r".
>
> Un petit peu d'aide svp?
>
> Merci d'avance!
> YeTi
>
>
> For r = 2 To 50 'row
> For pc = 15 To 20 'paste in column
>
> If Cells(r, 3) = "ü" Then
> Cells(r, 1).Copy
> End If
>
> If Cells(2, pc) = "" Then
> Cells(2, pc).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> SkipBlanks _
> :úlse, Transpose:úlse
>
> End If
> Next r
> Next pc





Daniel.C
Le #17410191
Essaie comme ça :

Sub test()
Dim c As Range, ResAdr As String
Dim i As Integer
i = 15
Set c = [C2:C50].Find("ü", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Cells(2, i) = Cells(c.Row, 1)
If i = 20 Then Exit Sub
i = i + 1
Set c = [C2:C50].FindNext(c)
Loop Until c.Address = ResAdr
End If
End Sub

Daniel
"YeTi"
Arf...

Merci beaucoup!
J'ai néanmoins tjrs un petit soucis.

Ma boucle copie donc tous les noms qui ont un "ü" dans la colonne 3 et les
colle dans la plage O2-S2.

Le problème c'est que si y a un seul nom qui a "ü", il est collé sur toute
la plage, alors que j'aimerais qu'il ne soit collé que dans la première
cellule (O2). Idem lorsqu'il y a plusieurs "ü", il colle le dernier nom
sur
toute la plage au lieu d'un nom par cellule.

Comment remédier à ca?

Merci de votre aide

YeTi


"Daniel.C" wrote:

Bonjour.
Sans regarder ton code plus avant, les boucles ne doivent pas se croiser,
la
seconde doit rester à l'intérieur. Si tu écris :

For r = 2 To 50 'row
For pc = 15 To 20 'paste in column

tu dois mettre en retour de boucles :

Next pc
Next r

--
Cordialement.
Daniel
"YeTi"
> Bonjour à tous,
>
> J'ai un problème avec un Next apparemment...
> Ce a quoi j'aimerais arriver c'est que si une cellule de la colonne C =
> ü,
> alors on la copie et on la colle seulement si une cellule de la ligne 2
> (entre la 15ème et la 20ème colonne) est vide.
>
> Lors que j'exécute avec la macro ci-dessous, un bug apparaît "Invalid
> Next
> controle variable reference" et me souligne le "Next r".
>
> Un petit peu d'aide svp?
>
> Merci d'avance!
> YeTi
>
>
> For r = 2 To 50 'row
> For pc = 15 To 20 'paste in column
>
> If Cells(r, 3) = "ü" Then
> Cells(r, 1).Copy
> End If
>
> If Cells(2, pc) = "" Then
> Cells(2, pc).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> SkipBlanks _
> :úlse, Transpose:úlse
>
> End If
> Next r
> Next pc







YeTi
Le #17410381
Merci Daniel.C

Je vais tenter d'adapter ton code car j'ai quelque peu modifié le miens
(voir sujet "Problème pour copier dans boucle")

Merci beaucoup pour ton aide.
A+

YeTi

"Daniel.C" wrote:

Essaie comme ça :

Sub test()
Dim c As Range, ResAdr As String
Dim i As Integer
i = 15
Set c = [C2:C50].Find("ü", , , xlWhole)
If Not c Is Nothing Then
ResAdr = c.Address
Do
Cells(2, i) = Cells(c.Row, 1)
If i = 20 Then Exit Sub
i = i + 1
Set c = [C2:C50].FindNext(c)
Loop Until c.Address = ResAdr
End If
End Sub

Daniel
"YeTi"
> Arf...
>
> Merci beaucoup!
> J'ai néanmoins tjrs un petit soucis.
>
> Ma boucle copie donc tous les noms qui ont un "ü" dans la colonne 3 et les
> colle dans la plage O2-S2.
>
> Le problème c'est que si y a un seul nom qui a "ü", il est collé sur toute
> la plage, alors que j'aimerais qu'il ne soit collé que dans la première
> cellule (O2). Idem lorsqu'il y a plusieurs "ü", il colle le dernier nom
> sur
> toute la plage au lieu d'un nom par cellule.
>
> Comment remédier à ca?
>
> Merci de votre aide
>
> YeTi
>
>
> "Daniel.C" wrote:
>
>> Bonjour.
>> Sans regarder ton code plus avant, les boucles ne doivent pas se croiser,
>> la
>> seconde doit rester à l'intérieur. Si tu écris :
>>
>> For r = 2 To 50 'row
>> For pc = 15 To 20 'paste in column
>>
>> tu dois mettre en retour de boucles :
>>
>> Next pc
>> Next r
>>
>> --
>> Cordialement.
>> Daniel
>> "YeTi" >>
>> > Bonjour à tous,
>> >
>> > J'ai un problème avec un Next apparemment...
>> > Ce a quoi j'aimerais arriver c'est que si une cellule de la colonne C =
>> > ü,
>> > alors on la copie et on la colle seulement si une cellule de la ligne 2
>> > (entre la 15ème et la 20ème colonne) est vide.
>> >
>> > Lors que j'exécute avec la macro ci-dessous, un bug apparaît "Invalid
>> > Next
>> > controle variable reference" et me souligne le "Next r".
>> >
>> > Un petit peu d'aide svp?
>> >
>> > Merci d'avance!
>> > YeTi
>> >
>> >
>> > For r = 2 To 50 'row
>> > For pc = 15 To 20 'paste in column
>> >
>> > If Cells(r, 3) = "ü" Then
>> > Cells(r, 1).Copy
>> > End If
>> >
>> > If Cells(2, pc) = "" Then
>> > Cells(2, pc).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
>> > SkipBlanks _
>> > :úlse, Transpose:úlse
>> >
>> > End If
>> > Next r
>> > Next pc
>>
>>
>>





Publicité
Poster une réponse
Anonyme