Posez votre question Signaler

Macro excel [Résolu]

tototi 65Messages postés 28 novembre 2006Date d'inscription 25 février 2011Dernière intervention - Dernière réponse le 8 fév 2009 à 15:56
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
Lire la suite 

Macro excel »

26 réponses
Réponse
+0
moins plus
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+
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Si, tu peu utiliser le code à l'intérieur d'autre macro, c'était juste pour la démo.
Ajouter un commentaire
Réponse
+0
moins plus
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
lermite222 - 26 jan 2009 à 17:33
Je suis pas enervé du tout mais je voulais un peu te secouer les puces :-))
Rien de ce dont ont discute ne va aller sur VB2008.Net et c'est tout a fait autre chose.
Il y a VB6 qui est identique au VBA d'excel mais il n'est plus commercialisé et vaux mieux apprendre le 2008
A+
tototi - 26 jan 2009 à 18:17
content que tu ne soit pas enerve. ton instruction excel fonctionne, je me suiis arrange pour retrouver "z1" a chaque macro. peut etre pas tres orthodoxe mais ca marche. meme en xls a la place de txt. je vais essayer de passr ca en "variable constante" et voir pour enregistrer et reafficher en "line input".
ca va bien te laisser respirer quelques jours :-))
a+
tototilermite222 - 29 jan 2009 à 09:33
bonjour. juste pour info, mais si tu as la solution...
je suis sur une machine avec vista premiun, l'autre sur xp pro mediacenter, le meme excel sur les deux
j'ai une macro avec l'instruction
With Sheets("archive")
.Activate
LigDispo = .Range(Cells(65536, 1), Cells(65536, 1)).End(x1Up).Row + 1
.Range(Cells(LigDispo, 1), Cells(LigDispo, 1)).Select
End With
la machine en xp l'accepte, pas vista. sur ce vista j'ai ce meme excel sur un virtuel, et c'est pas accepte non plus
j'ai contourne ce truc mais je me demande si ce programme, si j'arrive au bout, fait sur vista sera lisible sur xp
a+
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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+
lp1904 - 19 jan 2009 à 21:14
merci à toi
bonne soirée
Ajouter un commentaire
Réponse
+0
moins plus
bonjour escuse moi je sais plus comment on met sur resolu lol !!
Ajouter un commentaire
Réponse
+0
moins plus
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
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+
Ajouter un commentaire
Réponse
+0
moins plus
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+
Ajouter un commentaire
Réponse
+0
moins plus
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+
Ajouter un commentaire
Réponse
+0
moins plus
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 +
Ajouter un commentaire
Ce document intitulé « macro excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook