Si l'un ou plusieurs textboxs changent copier vers

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #21216151
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


DOMINIQUE
Le #21216401
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" 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







Daniel.C
Le #21216671
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" 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









DOMINIQUE
Le #21216761
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" 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" 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













Daniel.C
Le #21216881
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" 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" 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















DOMINIQUE
Le #21217071
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" 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" 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" 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



















Daniel.C
Le #21217051
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" 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" 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" 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





















DOMINIQUE
Le #21217371
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" 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" 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" 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" 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





















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

"Daniel.C" 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" 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" 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" 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

























Daniel.C
Le #21217561
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" 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" 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" 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" 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























Publicité
Poster une réponse
Anonyme