La modération vous a écrit: [list][*]Merci de citer vos sources pour cette macro
[*]Le terme macros a été supprimé du titre car inutile dans la section consacrée aux macros[/list]
Bonjour,
Je découvre les macros, je ne connais rien à la programmation, je vais donc essayer d’être précis sans vraiment connaître le langage.
J'ai téléchargé le code suivant (sur ce site) mais je n'arrive pas à le modifier.
La première macro copie sur les trois premier tableaux, j'ai besoin d'une deuxième macro pour le dernier tableau car les valeurs à recopier dépendent des premiers tableaux déjà remplis. Je ne peux donc pas copier en même temps.
Dans le code, toutes les zones nommées sont prises en compte, donc, si je nomme la dernière zone ,elle sera prise en compte par la première commande.
Je pense, mais je peux me tromper, qu'il faudrait juste préciser les zones pour chaque macro, mais, totalement novice, je n'ai pas réussi.
Code : Tout sélectionner
Option Explicit
Sub Main
Dim oDoc as Object, maFeuille as Object, mesZones as Object
Dim maZone as Object, Adresse as Object, laZone as Object, Destination as Object
Dim CellVide as Variant, x as Integer, y as Long
oDoc = thisComponent
maFeuille = oDoc.CurrentController.ActiveSheet
mesZones = oDoc.NamedRanges
For x = 0 To mesZones.Count -1
maZone = mesZones(x)
Adresse = maZone.ReferredCells.RangeAddress
laZone = maFeuille.getCellRangeByPosition(Adresse.startColumn,9,Adresse.startColumn,29)
CellVide = laZone.queryEmptyCells.RangeAddresses
If UBound(CellVide) < 0 Then
MsgBox("aucune cellule vide dans la zone " & laZone.AbsoluteName)
Exit Sub
Else
y = cellVide(0).StartRow
End If
Destination = maFeuille.getCellRangeByPosition(Adresse.startColumn,y,Adresse.EndColumn,y)
Destination.DataArray = maZone.ReferredCells.DataArray
Next x
End Sub