Macro excel
Résolu
tototi
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
tototi Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
tototi Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si et excel - Guide
11 réponses
Bonjour,
A+
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
ton histoire de cruche qui sonne creux me plait bien
merci
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
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
A+
'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
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
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
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
Quand il y aura du texte dans A1 l'UF sera ouvert sinon non.
A+
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 par
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 fait
Si plusieur lignes y fait appel
A+
1°) LigDispo = .Range(Cells(65536, 1), Cells(65536, 1)).End(x1Up).Row + 1
pas besoin de 2 x Cells tu remplace par
LigDispo = .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 fait
LigDispo = Sheets("archive").Range("A65536")).End(x1Up).Row + 1
Si plusieur lignes y fait appel
Dim 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+
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+
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+