Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problèm
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de la
colonne B) en majuscule et j'effectue un tri des colonnes -> sans problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est très
lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problèm
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de la
colonne B) en majuscule et j'effectue un tri des colonnes -> sans problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est très
lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problèm
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de la
colonne B) en majuscule et j'effectue un tri des colonnes -> sans problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est très
lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Avant que les rois ne rattrappent ta macro mets:
Application.EnableEvents = False
'ceci neutralise les événements exemple Target.Value = UCase(Target.Value)
'la macro repasse par là si changement de target.value
'ensuite en fin de macro remets...
Application.EnableEvents = True
Youky(BJ)
"François" a écrit dans le message de news:Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Avant que les rois ne rattrappent ta macro mets:
Application.EnableEvents = False
'ceci neutralise les événements exemple Target.Value = UCase(Target.Value)
'la macro repasse par là si changement de target.value
'ensuite en fin de macro remets...
Application.EnableEvents = True
Youky(BJ)
"François" <nospam@nospam.fr> a écrit dans le message de news:
Ozk9G2ObJHA.4684@TK2MSFTNGP03.phx.gbl...
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Avant que les rois ne rattrappent ta macro mets:
Application.EnableEvents = False
'ceci neutralise les événements exemple Target.Value = UCase(Target.Value)
'la macro repasse par là si changement de target.value
'ensuite en fin de macro remets...
Application.EnableEvents = True
Youky(BJ)
"François" a écrit dans le message de news:Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonsoir,
Peut-être en interprétant tes propos:
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim targetValue
'
Application.EnableEvents = False
'
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
targetValue = UCase(Target.Value)
Target.Value = targetValue
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending, Header:=xlNo
Range("B2:B" &
Range("B1000").End(xlUp).Row).Find(What:=targetValue).Activate
ActiveCell.Offset(0, 1).Activate
End If
'
Application.EnableEvents = True
'
End Sub
Cdlt
"François" a écrit dans le message de
news:Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonsoir,
Peut-être en interprétant tes propos:
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim targetValue
'
Application.EnableEvents = False
'
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
targetValue = UCase(Target.Value)
Target.Value = targetValue
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending, Header:=xlNo
Range("B2:B" &
Range("B1000").End(xlUp).Row).Find(What:=targetValue).Activate
ActiveCell.Offset(0, 1).Activate
End If
'
Application.EnableEvents = True
'
End Sub
Cdlt
"François" <nospam@nospam.fr> a écrit dans le message de
news:Ozk9G2ObJHA.4684@TK2MSFTNGP03.phx.gbl...
Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If
Bonsoir,
Peut-être en interprétant tes propos:
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim targetValue
'
Application.EnableEvents = False
'
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
targetValue = UCase(Target.Value)
Target.Value = targetValue
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending, Header:=xlNo
Range("B2:B" &
Range("B1000").End(xlUp).Row).Find(What:=targetValue).Activate
ActiveCell.Offset(0, 1).Activate
End If
'
Application.EnableEvents = True
'
End Sub
Cdlt
"François" a écrit dans le message de
news:Bonjour à tous,
Je profite que les rois ne nous aient pas encore rejoints pour vous
soumettre un petit problème ...
Dans un Worksheet_Change, je mets la cellule active (dernière cellule de
la colonne B) en majuscule et j'effectue un tri des colonnes -> sans
problème.
Je n'arrive en revanche pas à sélectionner à la fin del a procédure, la
cellule qui se trouvait initialement à la droite de la target ...
J'ai essayé : Target.Offset(, 1).Select qui ne fonctionne pas,
pas plus que la fonction Find !
Par ailleurs, le tableau qui ne comporte que 28 lignes / 6 colonnes est
très lent lors de la procédure (8 sec lorsque j'ajoute un simple nom en
B28 !)
Est-ce normal ? (il n'y a aucune formule dans toutes les cellules ...)
Merci pour votre aide,
et bonne année à tous les exceliens contributeur du MPFE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range, Posit As Long
If Target.Column = 2 And Target.Row > 1 And Target.Count = 1 Then
Application.ScreenUpdating = False
Target.Value = UCase(Target.Value)
' Target.Offset(, 1).Select
ActiveSheet.Range("B2:C" & Range("B1000").End(xlUp).Row) _
.Sort key1:¬tiveSheet.Range("B2"), order1:=xlAscending,
Header:=xlNo
On Error Resume Next
For Each Cellule In ActiveSheet.Range("Noms")
If Cellule.Value <> "" Then
Posit = Application.WorksheetFunction.Find(Target.Value,
Cellule.Value)
If Posit > 0 Then
Cellule.Offset(, 1).Activate
Exit Sub
End If
End If
Next
Application.ScreenUpdating = True
End If