Bonjour,
Je souhaite copier une colonne vers une autre colonne. Mon soucis c'est que les cellules sources contiennent une formule et je souhaite que ce soit le résultat de cette formule qui soit renvoyer.
et je souhaite que ma macro renvoie la valeur de la cellule et non son contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(ESTVIDE(D6);B6;D6)
En fouillant sur ce même forum j'ai obtenu deux macros :
1) première macro :
Cette macro copie la valeur de la cellule et non son contenu donc ma copie se passe correctement mais pour une cellule et j'en ai 300 a traiter ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub copie_colonne_click Dim feuilleSource As Object 'Désigne la feuille source Dim feuilleDestination As Object 'Désigne la feuille destination Dim valeur As String monDocument = thisComponent feuilleSource = monDocument.sheets.getByName("Chef") ' definit la feuille source feuilleDestination = monDocument.sheets.getByName("vehicule1") ' définit la feuille de destination valeur = feuilleSource.getCellRangeByName("f201").Value feuilleDestination.getCellRangeByName("b205").Value = valeur End Sub
2) seconde macro (trouvez telle quelle sur ce même forum)
Celle la focntionne pour toute la colonne mais copie le contenu tel quel donc ma formule et non son résultat ... :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub CopierZone() Dim monDocument As Object 'Pour désigner les feuilles Dim mesFeuilles As Object 'Pour désigner la feuille source Dim feuilleSource As Object 'Pour désigner la feuille destination Dim feuilleDestination As Object 'Pour désigner les cellules sources Dim celluleSource As Object 'Pour désigner la cellule destination Dim zoneDestination As Object 'Pour désigner la feuille active Dim FeuilleActive As Object monDocument = thisComponent mesFeuilles = monDocument.Sheets 'Feuille source qui contient les connées à copier feuilleSource = mesFeuilles.getByName("Chef") 'Zone des cellules à copier celluleSource = feuilleSource.getCellRangeByName("F6:F306") 'Désignation de la feuille destination si on veut la désigner feuilleDestination = mesFeuilles.getByName("vehicule1") 'CHOISIR CI DESSUS OU CI DESSOUS EN FONCTION 'Ou bien je désigne la feuille active à l'écan comme étant la feuille destination 'feuilleDestination = monDocument.getCurrentController().getActiveSheet() 'Je récupére le nom de la feuille active 'Je désigne la cellule où la copie va commencer zoneDestination = feuilleDestination.getCellRangeByName("B10") 'Là je procéde à la copie feuilleDestination.copyRange(zoneDestination.CellAddress, celluleSource.RangeAddress) End Sub
Je connais la solution sur le principe mais étant débutant en macro je n'arrive pas à mettre en application celle ci.
Pour la première macro, il faudrait mettre l'égalité en boucle en mettant la référence i dans le nom de la cellule (type : feuille1.a(i).value = feuille2.b(i-4).value) mais rien de ce que j'essaie ne fonctionne
Pour la seconde, il suffirait de rajouter un .value quelque part mais pareil ça ne fonctionne pas.
Si possible, j'aimerais une réponse pour chacune des macros, ça me permettrait d'apprendre mais déjà juste une qui fonctionne ça serai super
Merci d'avance pour le temps que vous allez me consacrer.
Partager