Macro et cases de texte et prise de tête :o) je suis presque au bout... mais...

T

Thibaut

Guest
Tout d abord, un tout grand merci pour toute l aide que vous m avez apporté... j ai plus ou moins réussi à adapter ça à mon cas... je dis plus ou moins car il y a encore quelques petits problèmes... Le problème est lorsque j arrive au userform... Dès que je tente de rentrer une valeur dans le tableau, celui-ci se ferme...
Autre chose, lorsque j ai ouvert le fichier où il faut aller chercher les données, la macro ramène bien les valeurs mais pas toutes??? C est assez bizarre... Pouvez vous m aider s il vous plait? J ai recopié ci-dessous mon programme.

D'avance un tout grand merci

Thibaut

This workbook (general)

Private Sub Workbook_Open()

Range("B1").Select
Selection.ClearContents
Range("C2").Select
Selection.ClearContents
Range("B3").Select
Selection.ClearContents
Range("F6:AC370").Select
Selection.ClearContents
Range("B1").Select
monchemin = ThisWorkbook.Path
ChDir (monchemin)
MsgBox " 1/ Cette macro s'execute à l'ouverture du fichier!"
rep = Application.Dialogs(xlDialogOpen).Show
If rep = False Then
MsgBox "regarge le code VB"
End
End If
Set monfichier = ActiveWorkbook

Range("E2:AB366").Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Range("F6").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlAdd, SkipBlanks:=False _
, Transpose:=False

Set monfichier = ActiveWorkbook

MsgBox "2/ tu as ouvert ton fichier"
UserForm1.Show
calcul
monfichier.SaveAs (monchemin & "\" & UserForm1.Ville & UserForm1.Année & ".xls")
MsgBox "ton fichier est sauvegardé dans le répertoire courant de la feuille contenant cette macro"
End Sub
Sub calcul()
MsgBox "Tes calculs se font..."

End Sub

et dans le userform code

Private Sub Année_Change()
Selection.Copy
Range("B3").Select
Selection.Paste
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Standaard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub

Private Sub CommandButton1_Click()
UserForm1.Hide

End Sub

Private Sub Valeur_Change()
Selection.Copy
Range("C2").Select
Selection.Paste
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Standaard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub

Private Sub Ville_Change()
Selection.Copy
Range("B1").Select
Selection.Paste
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Standaard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub
 
T

Thibaut

Guest
Re-bonjour à tout le monde
Au fait, j ai apparemment un problème avec ma fonction "paste"... Pourriez vous m expliquer comment je dois procéder??? Il faudrait que je copie ma valeur entré dans le userform pour la mettre dans la cellule B3
Bien à vous, bonne après-midi

Private Sub Année_Change()
Selection.Copy
Range("B3").Select
Selection.Paste
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "Arial"
.FontStyle = "Standaard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub
 
W

William

Guest
Re-bonjour Thibaut,

Tout d'abord, je dois t'informer que je suis un vrai baltringue en Useforms....

Par contre, un petit conseil pour aérer ton code :

Range("B1").Select
Selection.ClearContents

'C'est la même chose que :

Range("B1").ClearContents

'd'où :


Private Sub Workbook_Open()

Range("B1").ClearContents
Range("C2").ClearContents
Range("B3").ClearContents
Range("F6:AC370").ClearContents

Range("B1").Select


Par ailleurs, pour utiliser :

Selection.Copy
Range("B1").Select
Selection.Paste

Encore faut-il que tu ai une cellule sélectionnée....

Et là, je ne l'ai pas trouvé....

Dernière précision, après Selection.Paste, pense à utiliser :

Application.CutCopyMode = False

qui sert à vider le presse-papier...

Espérant t'avoir (un peu) aidé,

Je te souhaite bon courage...

Wiliam
 
T

Thibaut

Guest
Tout d abord merci...
Au fait ce que j ai besoin de copier c est le contenu des zones de texte de mon UserForm dans les cellules C2, B1 et B3... Les noms des zones de textes sont Ville_Change , Value_Change et Année_Change... On m a dit de faire les lignes de commande suivantes

Range("C2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=Value_Change"

mais lorsque je fais ça, apparait alors #NAME? dans la cellule...
Que puis je faire???

D avance un grand merci

Thibaut
 
W

William

Guest
Alors là, z'ensérien....


Mais par contre, l'aide d'excel indiquer des pistes en questionnant :


"Signification de la valeur d'erreur #NOM ?"


Vérifie tout de même que la cellule destination est au format Texte...


(Format -- Cellule -- nombre -- Cliquer sur Texte ou standard puis OK)

On sait jamais...

William
 
T

Thibaut

Guest
Non hélas, ça n est pas ça... :eek:( Je ne comprends pas...

Et j ai encore un autre problème... Les données que je vais chercher dans un autre fichier... Et bien quand je les copies, il ne les copie pas toutes... ??? Là non plus je ne comprends pas... bizarre

Un grand merci quand même...

Bonne fin de journée

Thibaut
 
T

Thibaut

Guest
Bon, j ai trouvé le problème concernant les valeurs qui n apparaissaient pas... mais il me reste tjsle problème de copier le contenu des zones de texte de mon UserForm dans les cellules C2, B1 et B3... Les noms des zones de textes sont Ville_Change , Value_Change et Année_Change... On m a dit de faire les lignes de commande suivantes

Range("C2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=Value_Change"

mais lorsque je fais ça, apparait alors #NAME? dans la cellule...

Je sais c est du copier/coller mais bon... je commence à saturer tout doucement :eek:p

Merci

Thibaut
 
@

@+Thierry

Guest
Bonsoir Thibaut et William et le Foroum,

Je me permets de m'introduire dans ce fil pour encourager William, car c'est très bien. Il pose des questions et il fait de son mieux pour aider les autres et ceci en toute simplicité, c'est ceci qu'il faut faire et encourager à faire dans ce forum.

Je n'ai pas tout lu, mais si Thibaut, tu as besoin de récupérer des valeurs de TextBox de UserForm, je pense qu'il ne faut pas que tu t'orientes vers une solution de copy and paste.

Admettons pour un exemple bidon :

1 UserForm contenant :
2 TextBox
1 CommndButton

Dans le Private module de ce UserForm (UserForm1)

Private Sub UserForm_Initialize()
Sheets("Feuil1").Range("A1:A2, B1, F6:AC370").ClearContents
TextBox1.Value = Format(Now, "DD/MM/YYYY")
End Sub


Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("A1").Value = TextBox1.Value
Sheets("Feuil1").Range("A2").Value = TextBox2.Value
End Sub



Explications
UserForm_Initialize est la macro évènementielle d'initialisation du UserForm. C'est dans cet 'emplacement où l'on doit mettre les codes pour qu'une action ou plusieurs actions se déroulent et se mettent en place dans le UserForm comme il faut au démarrage.

Pour l'exemple, ici je "nettoie" les cellules de la "Feuil1" (changer de nom, si nécessaire, et changer les adresses de cellules à vider)

Et ensuite je dis à VBA d'écrire la date dans la TextBox1 au format 19/02/2003

CommandButton1_Click
Quand on click sur le bouton je sis à VBA que la Cellule "A1" de la "Feuil1" est égale au Contenu de la TextBox1 (changer l'adresse de la cellule et le nom de feuille à tes besoins).
Je refais pareil pour la TextBox2.

Comme William de parle du Musée du Forum tu y trouveras pas mal d'exemples simples et moins simples de UserForms.

Bonne Soirée Thibaut et Welcome to XLD et bravo à William qui n'a pas peur de se lancer.
Bye
@+Thierry
 
@

@+Thierry

Guest
Bonjour tout le monde,

Euf... Vériland, sur ce fil m'a fait réaliser que William ......... C'est comme Dominique ou Claude... Et a en voir l'adresse email... Je pense que je devrais corriger la première phrase si dessus comme suit :

[/i]Je me permets de m'introduire dans ce fil pour encourager William, car c'est très bien. Elle pose des questions et Elle fait de son mieux pour aider les autres et ceci en toute simplicité, c'est ceci qu'il faut faire et encourager à faire dans ce forum.[/i]

Enfin si je ne m'abuse ! (dans ce cas toutes mes excuses !)
Bonne Journée
@+Thierry

PS d'ici la fin de la semaine vous ne me verrez pas bcp sur le forum (boulot/boulot)
 
Dernière modification par un modérateur:
W

William

Guest
Bijour tou li mounde...


Euh oui, bon...

Tout d'abord, désolé pour le lien vers le musée du Forum, je ne me suis pas relu, et j'avais oublié de l'insérer...


Ensuite, William c'est bien un prénom masculin, qui à ma connaissance, ne prend pas de fémini....

Donc, petite explication, Marie c'est la collègue de bureau que je remplace... Je travaille donc sous son profil (Ah, les joies de l'informatique !!)

Et donc, enfin, Merci @+Thierry de tes encouragements !!


Je fais ce que je peux, avec les moyens en ma possession, et j'essaie moi-même de progresser. ..


La veille d'envoyer mon premier message sur ce forum, je ne savais même pas enregistrer une macro (si si, même sans passer par l'éditeur VBA !!)

Alors, je vais continuer dans cette voie...

MERCI

William
 
T

Thibaut

Guest
MERCI!!!!!!!!!!!! J ai réussi, c est fini... Je remercie tous ceux qui m ont aidé à réaliser cette macro... William, @+Thierry et les autres que j ai dû oublier mais qui se trouvaient sur la première partie du forum pour cette macro... Vous faites un boulot extra... c est vraiment génial de pouvoir demander ainsi à des gens qui s y connaisse de précieux renseignements...

Bonne journée à tous et bonne continuation

Thibaut
 
R

rocardpatrick

Guest
deplacement dans des colognes et des celulles

comment fabriquer une macro qui me permette de selectionner des celulles .
exemple les celulles A1.B1.C1.A2.B2.B3 et ainsi de suite.
il faut que la macro s'arréte sur chaque celulles le temps que j'y inscrive quelque chose et quand validant elle passe a la celulle suivante.
 
W

William

Guest
Re: deplacement dans des colognes et des celulles

Bonjour Patrick,
Bonjour le Forum,

Eh Ben alors, Patrick, tu n'as pas lu la Charte ??

C'est facile, il n'y a qu'à cliquer sur le lien.... Et tu verras les merveilles d'enchantement de ce Forum...

A Bientôt, dans un autre fil,

William.
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal