Macro excel
Résolu
tototi
Messages postés
63
Statut
Membre
-
tototi Messages postés 63 Statut Membre -
tototi Messages postés 63 Statut Membre -
Bonjour, qui peut me dire quelle est l'instruction, dans une macro excel, pour creer un fichier et y entrer des donnees, et le reouvrir pour lire ces donnees
merci d'une reponse
merci d'une reponse
Configuration: Windows Vista Internet Explorer 7.0
11 réponses
-
Bonjour,
Sub EcrireFichier() F = FreeFile MaVar = "Je veux écrire dans un fichier texte." Open "Essais" For Output As #F Print #F, MaVar Close #F End Sub Sub LireFichier() F = FreeFile Open "Essais" For Input As #F Input #F, MaVar Close #F 'Le texte est dans MaVar End Sub
A+ -
merci pour la reponse. si je comprends bien je dois creer une macro, et non pas demander la creation du fichier a l'interieur d'une macro. je vais essayer ca. j'essaye de reutiliser des prog. que j'avais fait en qbasic, c'est vieux, un truc pour gestion scolaire
ton histoire de cruche qui sonne creux me plait bien
merci -
Si, tu peu utiliser le code à l'intérieur d'autre macro, c'était juste pour la démo.
-
bon et bien je suis a cote. c'est un prog qui enregistre les classes crees, le nombre de ses eleves, les notes obtenues dans les differentes matieres, enfin ce genre de truc
j'ai pu rmettre a jour ls saisies "classses-eleves-matieres, etc..", mais je n'arrive pas a creer les fichiers nominatifs de ces classes afin d'attribuer a chacun...
alors voila la macro qui me cionce. si tu as un peu de temps peux tu voir pourquoi ca accroche. le passage de la souris atteste bien qu "mynom" a ete pris en compte, mais pas d'affichage
Sub fichier_enrg_noms()
Stop
Range("h38").Select
mynombre = Selection.Value
Selection.Value = mynombre
b = mynombre
Range("h41").Select
retour:
Mynom = Selection.Value ' lit le nom
Selection.Value = Mynom
Open "fichiernoms" For Output As #1
Print #1, Mynom
Close #1
Range("g44").Select
Selection.Offset(ligvar, colvar).Select
Open "fichiernoms" For Input As #1
Input #1, Mynom
Debug.Print , Mynom
Close #1
Range("h39").Select
ActiveCell.FormulaR1C1 = " "
b = b - 1
If b = 0 Then
ActiveCell.FormulaR1C1 = " fin "
Range("h34").Select
ActiveCell.FormulaR1C1 = " "
Range("h36").Select
ActiveCell.FormulaR1C1 = " "
Range("j37").Select
ActiveCell.FormulaR1C1 = " "
Range("e39").Select
ActiveCell.FormulaR1C1 = " "
Exit Sub
End If
GoTo retour
End Sub
merci de ton aide-
Je n'ai pas toutes les données pour ajuster mais tu a déjà une idée avec cette macro.
'Mettre 10 noms (ou plus) à partir de G44 jusque G54 ou plus
'laisser une cellule vide après le dernier nom
Sub fichier_enrg_noms() Dim Fich As Integer, FichierNoms As String Dim Lig As Long, L 'ouvre le fichier pour écrire tout les noms dedans FichierNoms = ThisWorkbook.Path & "\FichierDesNoms.txt" Fich = FreeFile 'Un N° de fichier libre Open FichierNoms For Output As #Fich With Sheets("Feuil1") 'adapter le nom de la feuille Lig = 44 While Cells(Lig, 7) <> "" Print #Fich, Cells(Lig, 7) Lig = Lig + 1 Wend Close #Fich 'Ici tout les noms sont dans le fichier 'Ont les reprend et les écrit dans la colonne J Lig = 44 Open FichierNoms For Input As #Fich While Not EOF(Fich) Input #Fich, L Cells(Lig, 10) = L Lig = Lig + 1 Wend Close #Fich Range("h39") = " fin " 'Ont vide toutes tes cellules. Range("h34,h36,j37,e39").ClearContents End With End Sub
A+
-
bonjour lermite222, c'est encore moi, merci de ta reponse mais ca cionce encore au niveau de :
Fich = FreeFile 'Un N° de fichier libre
Open FichierNoms For Output As #Fich
j'ai fait "Fich=FreeFile(1)", essaye FileNumber a la place de fich (mot cle donne par excel), et essaye encore d'autres formulation, je bute toujours sur l'ouverture du fichier. (erreur chemin d'acces (75))
je sais que j'abuse, mais aurais tu encore un peu de temps, je voudrais bien comprendre car ce probleme va se representer par la suite
merci -
-
-
bonjour. autre question, si possible
comment forcer mon fichier a prendre pour nom (Open FichierNoms For Output As #Fich) un intitule cree lors de la saisie qui se presente sous forme de chaine (truc 1a), et qui de plus soit reconnu par les differentes macros. cet intitule (on peut supprimer l'espace) est appele a changer (machin 2b) mais qu'apres le passage par toutes les macros, lors d'une nouvelle saisie. en basic j'avais fait une variable (machin$) que je n'arrive pas a creer sous excel
merci d'une reponse
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
j'ai créer un userform avec liste déroulante qui s'ouvre lorsque une cellule A1 est selectionée.
Dans une macro, j'ai besoin à un moment de selectionner cette cellule A1 pour la copier vers une autre et aussi pour effacer son contenu... mais voilà, mon userform s'ouvre dés que ma macro se positionne sur cette cellule A1!!!
en fait, je voudrais qu'à ce moment précis dans ma macro, le selection de cette cellule A1 ne lance pas mon userform mais l'ignore !!
merci de votre aide -
Tu colle le code ci-dessous dans le module de ta feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then If Target <> "" Then 'Userform1.show End If End If End Sub
Quand il y aura du texte dans A1 l'UF sera ouvert sinon non.
A+
-
-
Je reprend sur une nouvelle fenêtre parce que les réponse commence à être trop petites et il me manque la moitié des mots.
1°) LigDispo = .Range(Cells(65536, 1), Cells(65536, 1)).End(x1Up).Row + 1
pas besoin de 2 x Cells tu remplace parLigDispo = .Range("A65536")).End(x1Up).Row + 1 ou LigDispo = .Cells(65536,1)).End(x1Up).Row + 1
2°) concernant ta question, j'ignore pourquoi mais il arrive qu'avec With excel refuse certaine fonction que ce soit sur XP ou vista.
Quand j'ai ça, je ne me casse pas la tête, j'emploi l'une de ces 2 solutions.
Si tu n'a que la ligne où tu initialise LigDispo le with vaut pas la peine, je faitLigDispo = Sheets("archive").Range("A65536")).End(x1Up).Row + 1
Si plusieur lignes y fait appelDim FL1 as WorkSheet Set FL1 = Sheets("archive") LigDispo = FL1.Range("A65536")).End(x1Up).Row + 1
A+ -
bonjour. et bien avec ton aide je suis arrive au bout de mon bidule. reste tout de meme une question, si j'ai dans une
colonne x cellules (1, 12,ou autre) a renseigner, est il possible de faire apparaitre un bouton de commande apres la derniere saisie. pas evident a priori
encore une fois merci de ton aide
a+ -
Bonjour,
Pas de problème,
mettre un bouton sur la feuille avec sa propriété Visible = False
Dans l'événement SelectionChange de la feuille tester les cellules à remplir et si elles sont remplie mettre le bouton à Visible=true.
Si tu veux Créer le bouton par code Voir là
Une idée pour Le test des cellules
A+
-
bonjour
de retour devant l'ecran, j'ai suivi tes instructions, et ca marche. la cerise suir le gateau
grand merci pour ton aide
a +