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

Si l'un ou plusieurs textboxs changent copier vers

28 réponses
Avatar
DOMINIQUE
Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent 60
textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le bouton
toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille "RecuperationDeDonnées"
tous les textboxs des frames 2,3 et 4 et que uniquement les textboxs
modifiés soit en caractères rouges.

Merci pour votre aide

10 réponses

1 2 3
Avatar
Daniel.C
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) -
1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent 60
textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le bouton
toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés copier
dans la dernière ligne vide de la feuille "RecuperationDeDonnées" tous les
textboxs des frames 2,3 et 4 et que uniquement les textboxs modifiés soit en
caractères rouges.

Merci pour votre aide


Avatar
DOMINIQUE
Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne en
bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je connaissais
userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) - 1)
<> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent 60
textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille "RecuperationDeDonnées"
tous les textboxs des frames 2,3 et 4 et que uniquement les textboxs
modifiés soit en caractères rouges.

Merci pour votre aide







Avatar
Daniel.C
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne en
bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je connaissais
userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) - 1) <>
Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent 60
textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille "RecuperationDeDonnées"
tous les textboxs des frames 2,3 et 4 et que uniquement les textboxs
modifiés soit en caractères rouges.

Merci pour votre aide









Avatar
DOMINIQUE
Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou méthode
non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe de
discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne en
bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je connaissais
userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe
de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) - 1)
<> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent
60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et que
uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide













Avatar
Daniel.C
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou méthode
non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe de
discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne en
bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je connaissais
userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) - 1)
<> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur ce
problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent 60
textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille "RecuperationDeDonnées"
tous les textboxs des frames 2,3 et 4 et que uniquement les textboxs
modifiés soit en caractères rouges.

Merci pour votre aide















Avatar
DOMINIQUE
merci alors l'erreur identifié est "next sans for" donc machinalement j ai
enlevé un next et ensuite il me donne l erreur if sans end if
pour tant le nombre de next a l'air bon et idem pour les if. bizarre!


"Daniel.C" a écrit dans le message de groupe de
discussion : exLPsY#
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou
méthode non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe
de discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne
en bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je
connaissais userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe
de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) -
1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur
ce problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent
60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été
modifiés copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et que
uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide



















Avatar
Daniel.C
Ma faute, il fallait mettre :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub
End If

Le message veut dire qu'il ne trouve pas de paire If / End If ou For /
Next.

Daniel

merci alors l'erreur identifié est "next sans for" donc machinalement j ai
enlevé un next et ensuite il me donne l erreur if sans end if
pour tant le nombre de next a l'air bon et idem pour les if. bizarre!


"Daniel.C" a écrit dans le message de groupe de
discussion : exLPsY#
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou
méthode non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe de
discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne
en bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je
connaissais userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe
de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) -
1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur
ce problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent
60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été modifiés
copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et que
uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide





















Avatar
DOMINIQUE
Pour faire plus simple,
je pensais qu'il serait préférable de faire un code qui dit si on modifie un
texbox que ses caractères deviennent rouges puis par défaut copier les
valeurs de tous les textboxs vers la feuille(recuperationsDesDonnée) a
chaque spinbutton up
donc j'ai commencé un code comme ceci mais avec des lacunes(beaucoup de
lacunes)

dans userform inizialise

dim Ctrl as control
for each Ctrl in me.controls
if me.controls change then 'je ne sais pas comment dire "si mon
controls change"
me.control.font.colorindex = 3
end if
next

dans spin button change


With Worksheets("recuperationDesDonnées")

derligne = .Range("A65536").End(xlUp).Row + 1
.cells(derligne,1) = me.te_invchmal 'dans ce cas je ne sais pas si il va
copier la forme (rouge si modifié)
.cells(derligne,2) = me.te_invchfem
ainsi de suite sur tous les texbox
end with

Autres problèmes je suis dans spinbutton change et je voudrais que la copie
vers recupdesdonnée ce fasse uniquement en spinbutton_up et j ai besoin du
down pour revenir en arrière. Et apparement ou je ne sais pas faire, je ne
peux faire apparaitre qu une forme de code (up ou down ou change).
merci pour le temps passé avec moi




"DOMINIQUE" a écrit dans le message de groupe de
discussion : uuxYRj#
merci alors l'erreur identifié est "next sans for" donc machinalement j ai
enlevé un next et ensuite il me donne l erreur if sans end if
pour tant le nombre de next a l'air bon et idem pour les if. bizarre!


"Daniel.C" a écrit dans le message de groupe de
discussion : exLPsY#
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou
méthode non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe
de discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne
en bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je
connaissais userform_initialize
merci

"Daniel.C" a écrit dans le message de
groupe de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) -
1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur
ce problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se
trouvent 60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par
le bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été
modifiés copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et
que uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide





















Avatar
DOMINIQUE
le message d erreur est 0
puis après il surligne la ligne .Cells(Ctr, i) = Item.Value

"Daniel.C" a écrit dans le message de groupe de
discussion : eXIwll#
Ma faute, il fallait mettre :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub
End If

Le message veut dire qu'il ne trouve pas de paire If / End If ou For /
Next.

Daniel

merci alors l'erreur identifié est "next sans for" donc machinalement j
ai enlevé un next et ensuite il me donne l erreur if sans end if
pour tant le nombre de next a l'air bon et idem pour les if. bizarre!


"Daniel.C" a écrit dans le message de groupe
de discussion : exLPsY#
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou
méthode non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe
de discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et
surligne en bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je
connaissais userform_initialize
merci

"Daniel.C" a écrit dans le message de
groupe de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms,
0) - 1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter
sur ce problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se
trouvent 60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par
le bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été
modifiés copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et
que uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide

























Avatar
Daniel.C
C'est en gros ce que je fais, sauf que les textboxes sont initialisés à
vide et pas alimentés par la toupie (je connais pas la règle pour
l'alimentation). Donc dans mon classeur de test je ne trouve que des
textboxes vides ou modifiés.
Voici l'adresse du classeur avec lequel j'ai testé :
http://cjoint.com/?crrVHWFQ4B
Si tu le peux, poste un classeur dépouillé de tout ce qui n'est pas
utile.
Daniel

Pour faire plus simple,
je pensais qu'il serait préférable de faire un code qui dit si on modifie un
texbox que ses caractères deviennent rouges puis par défaut copier les
valeurs de tous les textboxs vers la feuille(recuperationsDesDonnée) a chaque
spinbutton up
donc j'ai commencé un code comme ceci mais avec des lacunes(beaucoup de
lacunes)

dans userform inizialise

dim Ctrl as control
for each Ctrl in me.controls
if me.controls change then 'je ne sais pas comment dire "si mon
controls change"
me.control.font.colorindex = 3
end if
next

dans spin button change


With Worksheets("recuperationDesDonnées")

derligne = .Range("A65536").End(xlUp).Row + 1
.cells(derligne,1) = me.te_invchmal 'dans ce cas je ne sais pas si il va
copier la forme (rouge si modifié)
.cells(derligne,2) = me.te_invchfem
ainsi de suite sur tous les texbox
end with

Autres problèmes je suis dans spinbutton change et je voudrais que la copie
vers recupdesdonnée ce fasse uniquement en spinbutton_up et j ai besoin du
down pour revenir en arrière. Et apparement ou je ne sais pas faire, je ne
peux faire apparaitre qu une forme de code (up ou down ou change).
merci pour le temps passé avec moi




"DOMINIQUE" a écrit dans le message de groupe de
discussion : uuxYRj#
merci alors l'erreur identifié est "next sans for" donc machinalement j ai
enlevé un next et ensuite il me donne l erreur if sans end if
pour tant le nombre de next a l'air bon et idem pour les if. bizarre!


"Daniel.C" a écrit dans le message de groupe de
discussion : exLPsY#
Difficile de dire.
Remplace la ligne en erreur par :

On Error Resume Next
Valeurs(Ctr) = c.Text
if Err.NUmber <>0 then
MsgBox c.text
MsgBox Ctr
MsgBox Valeurs(Ctr)
Exit Sub

et poste en retour le contenu des Msgbox.
Daniel

Merci Daniel
ca avance, maintenant je me trouve avec "l'erreur 458 propriété ou
méthode non géré par cet objet" et sur lignage de la ligne :
Valeurs(Ctr) = c.Text


"Daniel.C" a écrit dans le message de groupe
de discussion : uneJGC#
Au temps pour moi; j'ai oublié de te dire de mettre la ligne :

Public Noms(), Valeurs()

au début d'un module standard.
Daniel

Bonjour Daniel C
Merci pour le travail mais j ai une erreur dans le code Private Sub
UserForm_Activate()
qui indique "erreur de compilation : variable non définie" et surligne
en bleu
la ligne ReDim Preserve Noms(Ctr)
et encore merci car c'est au dessus de mon niveau
Pour apprendre pourrais tu m'expliquer userform_activate , je
connaissais userform_initialize
merci

"Daniel.C" a écrit dans le message de groupe
de discussion :
Bonjour.
Utilise le code suivant :

Private Sub SpinButton1_Change()
Dim Ctr As Integer, f As Control, Test As Boolean
With Sheets("RecuperationDeDonnées")
Ctr = .[A65000].End(xlUp).Row + 1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each Item In f.Controls
i = i + 1
.Cells(Ctr, i) = Item.Value
Var = Application.Match(Item.Name, Noms, 0) 'ôter
If Valeurs(Application.Match(Item.Name, Noms, 0) -
1) <> Item.Value Then
Test = True
.Cells(Ctr, i).Font.ColorIndex = 3

End If
Next
End If
End If
Next f
If Test = False Then Rows(Ctr).Clear
End With
End Sub

Private Sub UserForm_Activate()
Dim Ctr As Integer
Ctr = -1
For Each f In Me.Controls
If TypeOf f Is Frame Then
If f.Name <> "Frame1" Then
For Each c In f.Controls
Ctr = Ctr + 1
ReDim Preserve Noms(Ctr)
ReDim Preserve Valeurs(Ctr)
Noms(Ctr) = c.Name
Valeurs(Ctr) = c.Text
Next
End If
End If
Next f
Var = Noms
End Sub

Daniel

Bonjour,
J'ai du mal à démarrer un code pouvez vous m'aider ou m'orienter sur
ce problème, merci.

J'ai un userform comprenant 4 frames dans c'est 4 frames se trouvent
60 textboxs. Ces textboxs sont alimentés par une toupie.
est il possible de créer un code qui dirait lors du changement par le
bouton toupie :
Si l'un ou plusieurs des textboxs des frames 2,3 et 4 ont été
modifiés copier dans la dernière ligne vide de la feuille
"RecuperationDeDonnées" tous les textboxs des frames 2,3 et 4 et que
uniquement les textboxs modifiés soit en caractères rouges.

Merci pour votre aide























1 2 3