Correspondance VBA / Macro XL4

gabriel

XLDnaute Nouveau
Bonjour à tous,
Existe t-il une traduction ou correspondance meme approximative des macro XL4
Je suis en train d'actualiser un programme XL4 en VBA et c'est assez ardu...
quelqu'un peut m'aider ?

exemple de code à traduire

=SELECTION.ATTEINDRE('DebutBase')
=MODIFIER.SELECTION(4)
=MODIFIER.SELECTION(2)
=DEFINIR.NOM('Fin')
=SELECTIONNER('Fin:DebutBase')
=DEFINIR.NOM('Extraction')
=RETOUR()
Merci pour votre aide
 

Hervé

XLDnaute Barbatruc
Bonjour gabriel

bon, vraiment pas sur de moi, mais j'ai essayé de te traduire ce code :


Public Sub vev()
Range('Debutbase').Select
'=SELECTION.ATTEINDRE('DebutBase')
Cells(65536, ActiveCell.Column).End(xlUp).Select
' = MODIFIER.Selection(4)
Cells(ActiveCell.Row, 256).End(xlToLeft).Select
' = MODIFIER.Selection(2)
ActiveCell.Name = 'Fin'
' = DEFINIR.NOM('Fin')
Range('Debutbase', 'fin').Select
'=SELECTIONNER('Fin:DebutBase')
Selection.Name = 'Extraction'
'=DEFINIR.NOM('Extraction')
End Sub


ce code doit etre simplifiable par ceci :


Sub Bouton2_QuandClic()
Range('Debutbase').CurrentRegion.Name = 'Extraction'
End Sub


salut
 

Gruick

XLDnaute Accro
Bonjour Gabriel,
Les macros XL4 fonctionnent toujours s/les versions postérieures, la preuve, je viens de recopier ton code, et de l'executer. On peut donc même en faire. Les 2 sont compatibles.
Dans ton exemple,
=MODIFIER.SELECTION(4) et =MODIFIER.SELECTION(2)
me sélectionnent une zone qui s'étend de la cellule nommée DebutBase à la IV65536, c'est à dire la dernière de la feuille, la nomme fin, et nomme la zone Extraction.
En VBA ça donne ça :

Sub Macro1()
Range('DebutBase').Select
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.Name = 'Fin'
Range('DebutBase:Fin').Select
Selection.Name = 'Extaction'
End Sub

Mais si ça marche en XL4, à quoi bon destroy ?
A+
 

gabriel

XLDnaute Nouveau
Merci pour ce morceau de code...
Mais ca marche pas.
En fait ce que je souhaiterais, c'est nommer une plage de cellules issu d'une extraction sans doublons (via le filtre élaboré) pour alimenter des combobox.
colonne AB = dossier
colonne AC = enseigne
colonne AD = societe
colonne AE = annee
colonne AF = affectation
Comme la longueur des plages est variable, j'ai besoin de définir un nom X que je puisse reprendre dans la ligne : Combobox.RowSource=('Base!NomDossier')
Les entetes de colonnes sont tjrs les memes, seul le nombre de ligne change en fonction des saisie.
Voila, ma demande est formulée.
Merci de ton aide, en espérant que ce soit dans tes cordes...
@+
 

gabriel

XLDnaute Nouveau
Merci à vous de vous pencher sur mon cas...
Le problème c'est que le programme que j'ai fait en XL4 date un peu, qu'il fait 34 Mo, néanmoins très esthétique ce qui explique son poids.
Cette conversion de code me permet aussi et surtout d'apprendre un language qui à mon avis et plus puissant et + rapide.
Je viens d'essayé ta traduction de code...
CA MARCHE !!!
Merci encore de vos réponses, et vu comme j'avance (à trés petits pas), j'aurais besoins de vos lumières incessament sous peu... si disponibilité il y a.

@+
Gabriel
 

Gruick

XLDnaute Accro
Re,
Attention aux filtres, le nom sera affecté de la première valeur trouvée à la dernière, incluant celles entre. (géographiquement parlant)
Vaudrait mieux trier avant de filtrer


Sub Macro1()
Range('AB1').Select
Range(Selection, Selection.End(xlDown)).Name = 'dossier'
Range('AC1').Select
Range(Selection, Selection.End(xlDown)).Name = 'enseigne'
......
End Sub
 

gabriel

XLDnaute Nouveau
Bonsoir Gruick
Suite à ton conseil j'ai fais ça :
Sub TriExtract()
Range('ExtractEnseigne').Select
Selection.Sort Key1:=Range('AB2'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range('ExtractSociete').Select
Selection.Sort Key1:=Range('AC2'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
.....
End Sub
Pour les 5 champs et je l'ai mis dans l'USF en initialisation... ca marche et c'est rapide.

Merci encore et @+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert