Remplacement d'une plage dans une colonne par Refedit
4 réponses
Sylian
Bonjour,
J'ai cette ligne qui fonctionne bien :
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Que j'aimerai remplacer par une colonne (ou une partie d'une colonne)
sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row &
(Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma
sélection de la ligne Range(RefEdit1.Value).Row à
Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
J'ai cette ligne qui fonctionne bien :
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Que j'aimerai remplacer par une colonne (ou une partie d'une colonne)
sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row &
(Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma
sélection de la ligne Range(RefEdit1.Value).Row à
Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
Sylian
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
Merci beaucoup pour l'astuce Isabelle.
Ma macro d'origine qui était :
x = 1
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c,
LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value
ligneDébut1 = Range(plg1).Item(1).Row
ColonneDébut1 = Range(plg1).Item(1).Column
ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1
x = 1
For Each c In Range(Cells(ligneDébut1, ColonneDébut1),
Cells(ligneFin1, ColonneDébut1))
Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2,
ColonneDébut2)).Find(c, LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y
travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans
le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien :
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Que j'aimerai remplacer par une colonne (ou une partie d'une colonne)
sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row &
(Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma
sélection de la ligne Range(RefEdit1.Value).Row à
Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
isabelle
bonjour Sylian,
il faudrait ajouter la feuille For Each c In Sheets("LaFeuille").Range("E1:E" & Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
bonjour Sylian,
il faudrait ajouter la feuille
For Each c In Sheets("LaFeuille").Range("E1:E" &
Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle.
Ma macro d'origine qui était :
x = 1
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c,
LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value
ligneDébut1 = Range(plg1).Item(1).Row
ColonneDébut1 = Range(plg1).Item(1).Column
ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1
x = 1
For Each c In Range(Cells(ligneDébut1, ColonneDébut1),
Cells(ligneFin1, ColonneDébut1))
Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2,
ColonneDébut2)).Find(c, LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y
travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien
sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien :
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Que j'aimerai remplacer par une colonne (ou une partie d'une
colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row &
(Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma
sélection de la ligne Range(RefEdit1.Value).Row à
Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
il faudrait ajouter la feuille For Each c In Sheets("LaFeuille").Range("E1:E" & Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
Sylian
Merci beaucoup isabelle pour l'aiguillage. voici la solution pour ceux que ça intéresseraient (Venn étant le nom de mon userform de départ):
Dim fl1,fl2, fl3 As Worksheet Set fl1 = Sheets(Range(Venn.RefEdit1.Value).Parent.Name) Set fl3 = Sheets(Range(Venn.RefEdit2.Value).Parent.Name) Set fl2 = Worksheets("Résultat")
x = 1 For Each c In Range(fl1.Cells(ligneDébut1, ColonneDébut1), fl1.Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(fl3.Cells(ligneDébut2, ColonneDébut2), fl3.Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c Set Cherch = Nothing
(...)
Encore merci pour l'aide Isabelle. Je mettais le nom de la feuille avant Range sans succès et finalement en le distrubuant devant chaque Cells(...) ça fonctionne enfin ! Extra !
Sylian
isabelle a écrit :
bonjour Sylian,
il faudrait ajouter la feuille For Each c In Sheets("LaFeuille").Range("E1:E" & Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci !
Merci beaucoup isabelle pour l'aiguillage.
voici la solution pour ceux que ça intéresseraient (Venn étant le nom de
mon userform de départ):
Dim fl1,fl2, fl3 As Worksheet
Set fl1 = Sheets(Range(Venn.RefEdit1.Value).Parent.Name)
Set fl3 = Sheets(Range(Venn.RefEdit2.Value).Parent.Name)
Set fl2 = Worksheets("Résultat")
x = 1
For Each c In Range(fl1.Cells(ligneDébut1, ColonneDébut1),
fl1.Cells(ligneFin1, ColonneDébut1))
Set Cherch = Range(fl3.Cells(ligneDébut2, ColonneDébut2),
fl3.Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Set Cherch = Nothing
(...)
Encore merci pour l'aide Isabelle. Je mettais le nom de la feuille avant
Range sans succès et finalement en le distrubuant devant chaque
Cells(...) ça fonctionne enfin ! Extra !
Sylian
isabelle a écrit :
bonjour Sylian,
il faudrait ajouter la feuille
For Each c In Sheets("LaFeuille").Range("E1:E" &
Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle.
Ma macro d'origine qui était :
x = 1
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c,
LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value
ligneDébut1 = Range(plg1).Item(1).Row
ColonneDébut1 = Range(plg1).Item(1).Column
ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1
x = 1
For Each c In Range(Cells(ligneDébut1, ColonneDébut1),
Cells(ligneFin1, ColonneDébut1))
Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2,
ColonneDébut2)).Find(c, LookAt:=xlWhole)
If Cherch Is Nothing Then
fl2.Range("C" & x) = c
x = x + 1
End If
Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y
travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien
sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien :
For Each c In Range("E1:E" & [E65536].End(xlUp).Row)
Que j'aimerai remplacer par une colonne (ou une partie d'une
colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row &
(Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma
sélection de la ligne Range(RefEdit1.Value).Row à
Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?
Merci beaucoup isabelle pour l'aiguillage. voici la solution pour ceux que ça intéresseraient (Venn étant le nom de mon userform de départ):
Dim fl1,fl2, fl3 As Worksheet Set fl1 = Sheets(Range(Venn.RefEdit1.Value).Parent.Name) Set fl3 = Sheets(Range(Venn.RefEdit2.Value).Parent.Name) Set fl2 = Worksheets("Résultat")
x = 1 For Each c In Range(fl1.Cells(ligneDébut1, ColonneDébut1), fl1.Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(fl3.Cells(ligneDébut2, ColonneDébut2), fl3.Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c Set Cherch = Nothing
(...)
Encore merci pour l'aide Isabelle. Je mettais le nom de la feuille avant Range sans succès et finalement en le distrubuant devant chaque Cells(...) ça fonctionne enfin ! Extra !
Sylian
isabelle a écrit :
bonjour Sylian,
il faudrait ajouter la feuille For Each c In Sheets("LaFeuille").Range("E1:E" & Sheets("LaFeuille").[E65536].End(xlUp).Row)
isabelle
Sylian a écrit :
Merci beaucoup pour l'astuce Isabelle. Ma macro d'origine qui était :
x = 1 For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Set Cherch = Range("F1:F" & [F65536].End(xlUp).Row).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Devient à présent :
plg1 = Venn.RefEdit1.Value ligneDébut1 = Range(plg1).Item(1).Row ColonneDébut1 = Range(plg1).Item(1).Column ligneFin1 = Range(plg1).Rows.Count + ligneDébut1 - 1 x = 1 For Each c In Range(Cells(ligneDébut1, ColonneDébut1), Cells(ligneFin1, ColonneDébut1)) Set Cherch = Range(Cells(ligneDébut2, ColonneDébut2), Cells(ligneFin2, ColonneDébut2)).Find(c, LookAt:=xlWhole) If Cherch Is Nothing Then fl2.Range("C" & x) = c x = x + 1 End If Next c
Il n'y a pas d'erreur mais cela ne m'affiche aucun résultat ... J'y travaille. J'ai du faire une erreur. Bizarre que ça fonctionne bien sans le RefEdit pourtant.
J'ai cette ligne qui fonctionne bien : For Each c In Range("E1:E" & [E65536].End(xlUp).Row) Que j'aimerai remplacer par une colonne (ou une partie d'une colonne) sélectionnée par un RefEdit.
J'ai tenté un truc comme ça :
For Each c In Range(Range(RefEdit1.Value).Row & (Range(RefEdit1.Value).Row + Range(RefEdit1.Value).Row.Count - 1))
En considérant que ma plage à traiter soit la 1ère colonne de ma sélection de la ligne Range(RefEdit1.Value).Row à Range(RefEdit1.Value).Row.Count
Comment remplacer mon For Each c In Range( ????) avec mon RefEdit ?