"Range" variable dans macro Exce
Fermé
Capricorne3
Messages postés
542
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
4 juin 2020
-
29 nov. 2008 à 14:46
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 30 nov. 2008 à 13:07
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 30 nov. 2008 à 13:07
A voir également:
- "Range" variable dans macro Exce
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 nov. 2008 à 15:39
29 nov. 2008 à 15:39
Bonjour,
..."Après de jours et des jours de recherche sans succès"... T'es sûr ?
..."Après de jours et des jours de recherche sans succès"... T'es sûr ?
Dim N1 As Long, N2 As Long Dim plage As Range N1 = Range("pre") N2 = Range("der") If N1 >= N2 Then MsgBox " Erreur de saisie", vbCritical Exit Sub End If Set plage = Range(Cells(N1, 3), Cells(N2, 3))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 nov. 2008 à 18:37
29 nov. 2008 à 18:37
Bonsoir Capricorne,
Multiplan ca nous rajeunit pas! j'ai débuté par multiplan3 1 4, framework, dbase3, le tour sous MSDOS 3 en 88...
Pour faire ta macro, tu as utilisé l'enregistreur de macro: il mémorise tout ce que tu fais dans le classeur et quand tu utilises un assistant comme le tri, il écrit aussi toutes les param^tres facultatifs, cad les options non par défaut.
Dans ton cas tu veux mettre des variables N1, N2 pour délimiter ta zone ce qui est impossible à) faire avec les formules Excel donc impossible aussi avec l'enregistreur.
Il faut utiliser le VBA (Visual Basic Application) descendant du Q ou GWBasic qui fit les beaux jours des TO7!
, Order1:=xlAscending,oici la macro VBA commentée
A copier-coller sous ta macro
Pour comprendre
tu cliques dans la macro et tu appuies sur F8 pour progresser en pas à pas; par exemple quand tu seras sur la ligne où on affecte N2, si tu passes la souris sans cliquer sur N1 tu verras la valeur (8 dans la cellule "pre")
Multiplan ca nous rajeunit pas! j'ai débuté par multiplan3 1 4, framework, dbase3, le tour sous MSDOS 3 en 88...
Pour faire ta macro, tu as utilisé l'enregistreur de macro: il mémorise tout ce que tu fais dans le classeur et quand tu utilises un assistant comme le tri, il écrit aussi toutes les param^tres facultatifs, cad les options non par défaut.
Dans ton cas tu veux mettre des variables N1, N2 pour délimiter ta zone ce qui est impossible à) faire avec les formules Excel donc impossible aussi avec l'enregistreur.
Il faut utiliser le VBA (Visual Basic Application) descendant du Q ou GWBasic qui fit les beaux jours des TO7!
, Order1:=xlAscending,oici la macro VBA commentée
Sub trier() 'déclaration des variables Dim N1 As Long, N2 As Long 'affecte à N1 & N2 la valeur saisie dans la cellule (range) pre et der N1 = Range("pre") N2 = Range("der") ' On vérifie que N2 est sup. à N1 (if...then= si...alors) If N1 >= N2 Then 'dans une boite message on écrit qu'il y a erreur avec le symbole "croix sur fond rouge)" MsgBox " Erreur de saisie", vbCritical 'on quitte la macro Exit Sub 'fin du si End If 'plage de cellule commencant à la cellule (cells: autre syntaxe pour désigner une cellule) ligne N1 _ colonneC (C=3) et seterminant à la cellule ligne N2, colonneC 'et on trie (sort) a partir de la cellule de départ dans l'ordre croissant (xlascending) _ (les param^tres supprimés correspondent à des options _ facultatives autres que celles par défaut Range(Cells(N1, 3), Cells(N2, 3)).Sort Key1:=Cells(N1, 3), Order1:=xlAscending End Sub
A copier-coller sous ta macro
Pour comprendre
tu cliques dans la macro et tu appuies sur F8 pour progresser en pas à pas; par exemple quand tu seras sur la ligne où on affecte N2, si tu passes la souris sans cliquer sur N1 tu verras la valeur (8 dans la cellule "pre")
Capricorne3
Messages postés
542
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
4 juin 2020
24
29 nov. 2008 à 19:27
29 nov. 2008 à 19:27
Coucou,
Ou là là, serions-nous de la même génération, ou à peu près ?
Mes débuts avec Multiplan 3, sous DOS 3.20, datent de 1988. J'ai encore de nombreuses applications sous Multiplan, et si je claque avant de les migrer sous Excel, ma fille ne saura pas aider sa mère.
Pour les applications sous dBase 3, que je maîtrise toujours plus que bien, il n'y a pas de problème : les programmes sont faits pour ne jamais se planter.
J'essaie çà demain car, ce soir, une jambe dans un plâtre fait qu'à 19:00 je suis naz.
Aimerais ne pas vous perdre de vue pour problème éventuel ultérieur.
Mon e-mail = traray@free.fr En vous promettant de n'en user qu'avec parcimonie, le vôtre constituerait une précieuse bouée de sauvetage.
Ou là là, serions-nous de la même génération, ou à peu près ?
Mes débuts avec Multiplan 3, sous DOS 3.20, datent de 1988. J'ai encore de nombreuses applications sous Multiplan, et si je claque avant de les migrer sous Excel, ma fille ne saura pas aider sa mère.
Pour les applications sous dBase 3, que je maîtrise toujours plus que bien, il n'y a pas de problème : les programmes sont faits pour ne jamais se planter.
J'essaie çà demain car, ce soir, une jambe dans un plâtre fait qu'à 19:00 je suis naz.
Aimerais ne pas vous perdre de vue pour problème éventuel ultérieur.
Mon e-mail = traray@free.fr En vous promettant de n'en user qu'avec parcimonie, le vôtre constituerait une précieuse bouée de sauvetage.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
30 nov. 2008 à 10:40
30 nov. 2008 à 10:40
Bonjour Capricorne,
Je t'ai mis un mot en message perso.
Pour t'aider dans ton apprentissage de VBA, tu as cet excellent site très décontracté et pédagogique:
www.info-3000.com
Ancien formateur, je conseillais à mes stagiaires adultes (20 à 56 ans) de le consulter hors temps de formation et ceux qui ont suivi ce conseil ont vivement apprécié.
Pourrais tu nous expliquer, sur le forum, comment passes-tu de multiplan à Excel 2000 (je crois qu'il y a une histoire d'extension .SLK (sylk?) cela serait utile à tous.
Je t'ai mis un mot en message perso.
Pour t'aider dans ton apprentissage de VBA, tu as cet excellent site très décontracté et pédagogique:
www.info-3000.com
Ancien formateur, je conseillais à mes stagiaires adultes (20 à 56 ans) de le consulter hors temps de formation et ceux qui ont suivi ce conseil ont vivement apprécié.
Pourrais tu nous expliquer, sur le forum, comment passes-tu de multiplan à Excel 2000 (je crois qu'il y a une histoire d'extension .SLK (sylk?) cela serait utile à tous.
Capricorne3
Messages postés
542
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
4 juin 2020
24
30 nov. 2008 à 13:02
30 nov. 2008 à 13:02
Coucou,
Merci beaucoup.
Ci-dessous, la méthode que je connais pour passer d'une feuille Multiplan à une feuille Excel.
S'il y a une formule dans une cellule du Multiplan, c'est sa valeur à l'instant t et non la formule qui sera exportée.
=======
. Pour convertir en Excel un fichier Multiplan :
- sous Multiplan :
. sélectionner zone à convertir en Excel
. "Sortie", "Fichier", donner un nom en .txt
- avec Word :
. ouvrir le .txt (a priori, il est dans C:\MP)
. sélectionner la zone à convertir
. "Edition", "Copier"
- Ouvrir Excel
. cg sur cellule A1
. "Edition", "Coller"
. régler la largeur des colonnes pour correspondre au texte
=> . cg sur A (en-tête 1ère colonne)
. cg "Données, cg "Convertir"
. cocher "Largeur fixe"
. cg "Suivant"
. cg "Suivant"
. cocher "Texte"
. cg "Terminer"
. recommencer à => pour chacune des autres colonnes B, C, ...
-=================-
Cordialement,
Capricorne3
Merci beaucoup.
Ci-dessous, la méthode que je connais pour passer d'une feuille Multiplan à une feuille Excel.
S'il y a une formule dans une cellule du Multiplan, c'est sa valeur à l'instant t et non la formule qui sera exportée.
=======
. Pour convertir en Excel un fichier Multiplan :
- sous Multiplan :
. sélectionner zone à convertir en Excel
. "Sortie", "Fichier", donner un nom en .txt
- avec Word :
. ouvrir le .txt (a priori, il est dans C:\MP)
. sélectionner la zone à convertir
. "Edition", "Copier"
- Ouvrir Excel
. cg sur cellule A1
. "Edition", "Coller"
. régler la largeur des colonnes pour correspondre au texte
=> . cg sur A (en-tête 1ère colonne)
. cg "Données, cg "Convertir"
. cocher "Largeur fixe"
. cg "Suivant"
. cg "Suivant"
. cocher "Texte"
. cg "Terminer"
. recommencer à => pour chacune des autres colonnes B, C, ...
-=================-
Cordialement,
Capricorne3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
30 nov. 2008 à 13:07
30 nov. 2008 à 13:07
OK, Merci pour ce renseignement précieux
Bon dimanche
Bon dimanche
29 nov. 2008 à 17:18
Quelle chance j'ai d'avoir une réponse, et si vite.
Avex mes excuses de néophyte sous Excel, en train de migrer sous Excel des applications vieilles de 20 ans sous Multiplan, je dois avouer que je ne sais pas à quel endroit de la macro "standard" de tri colonne C de N1 à N2 incorporer (substituer) la séquence indiquée.
Actuellement, j'ai d'un côté votre réponse et de l'autre la macro classique :
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 27/11/2008 par R.T.
'
Range("C8:C17").Select
Selection.Sort Key1:=Range("C8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Je dois avouer que je ne sais pas que faire. Mes 75 ans ne m'aident pas, il est vrai.
Aurez-vous le temps et la patience de me rédiger la macro modifiée ?
Merci d'avance.