Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copié une formule sur une colonne variable

  • Initiateur de la discussion Initiateur de la discussion ninajams
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

ninajams

Guest
Bonjour,

Comme d'habitude je viens vous embeter avec mes questions idiotes.

Problème : je souhaite recopier ma formule dans toutes les lignes de la colonne, mais la colonne peut varié(c'est la première colonne vide).

Pour vous donnez plus d'indication sur les données, il s'agit de la démarque et de la surmarque dans mon entrepôt.
Or celle-ci ne disparait que lors de l'inventaire annuel donc mes écart de stock reste apparent constamment.
Le but de ce fichier c'est de comparer mes écarts du jours avec ceux de la veuille pour toute mes références ca me permet de déterminer les nouveaux écart à justifié.
donc ca me donnerais à la fin un fichier du style
A2=référence
B2=écart j
C2=écart J+1
D2=écart J+2
IV2=écart j+256



Voici le code :

Sheets("données brutes").Select

'supprime les colonnes inutiles
Columns("E:K").Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft

Sheets("analyse").Select

'Se place sur la première colonne vide
Range("A1").End(xlToRight).Offset(0, 1).Select

'inscrit la date du jours
ActiveCell.FormulaR1C1 = "=now()"

'se place sur la ligne du dessous
ActiveCell.Offset(1, 0).Select


'recherche vertical
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],'données brutes'!R2C1:R4143C4,4,0)"

'copies la formules sur les autres lignes de la colonne
Range("D2").Select
Selection.AutoFill Destination:=Range("D2😀2875")
Range("D2😀2875").Select


Cordialement

Mickael
 
Re : copié une formule sur une colonne variable

Bonsoir,

Un bout de code à tester mais ce serait plus simple avec le fichier :

Sub test()
With Sheets("données brutes")
.Columns("E:K").Delete Shift:=xlToLeft
.Columns("C:C").Delete Shift:=xlToLeft
End With
With Sheets("analyse").Range("A1").End(xlToRight)
.Offset(1, 1).FormulaR1C1 = "=VLOOKUP(RC[-3],'données brutes'!R2C1:R4143C4,4,0)" 'A automatiser (voir fichier)
.Offset(0, 1).FormulaR1C1 = "=now()"
.Offset(1, 1).AutoFill Destination:=.Offset(1, 1).Resize(Sheets("analyse").Range("C65536").End(xlUp).Row - 1) 'C si C est la colonne de reference
End With
End Sub
 
Re : copié une formule sur une colonne variable

.Offset(1, 1).AutoFill Destination:=.Offset(1, 1).Resize(Sheets("analyse").Range("C65536").End(xlUp).Row - 1) 'C si C est la colonne de reference
End With
End Sub[/QUOTE]


Justement le problème c'est que demain ce sera la colonne D
après demain la colonne E ect....
c'est la ou je bloque parceque je sais copier une formule jusqu'a la fin d'un tableau pour une colonne fixe mais je sais pas faire justement avec des colonne qui bouge au fil du temps.

a l'heure actuel je fais s'arreter le macro après qu'elle ait saisi ma recherche et après je double clique pour faire descendre ma formule en bas du tableau.


Mickael
 
Dernière modification par un modérateur:
Re : copié une formule sur une colonne variable

Re,

Le code et le fichier joint

Sub test()
'With Sheets("données brutes")
' .Columns("E:K").Delete Shift:=xlToLeft
' .Columns("C:C").Delete Shift:=xlToLeft
'End With
With Sheets("analyse uvc").Range("A1").End(xlToRight)
.Offset(1, 1).FormulaR1C1 = "=VLOOKUP(RC[-3],'données brutes'!R2C2:R4143C4,3,0)" 'A automatiser (voir fichier)
.Offset(0, 1).FormulaR1C1 = "=now()"
.Offset(1, 1).AutoFill Destination:=.Offset(1, 1).Resize(Sheets("analyse uvc").Range("C65536").End(xlUp).Row - 1) 'C si C est la colonne de reference
End With
End Sub
 

Pièces jointes

Re : copié une formule sur une colonne variable

Re,

C'est un peu tiré par les cheveux, mais le code ci-dessous gere l'evolution des colonnes :

Sub test()
'With Sheets("données brutes")
' .Columns("E:K").Delete Shift:=xlToLeft
' .Columns("C:C").Delete Shift:=xlToLeft
'End With
With Sheets("analyse uvc").Range("A1").End(xlToRight)
.Offset(1, 1).FormulaR1C1 = "=VLOOKUP(RC[-3],'données brutes'!R2C2:R" & Sheets("données brutes").Range("A65536").End(xlUp).Row & "C4,3,0)" 'A automatiser (voir fichier)
.Offset(0, 1).FormulaR1C1 = "=now()"
.Offset(1, 1).AutoFill Destination:=.Offset(1, 1).Resize(Sheets("analyse uvc").Cells(65536, .Offset(1, 0).Column).End(xlUp).Row - 1)
End With
End Sub


Gere egalement la taille du tableau de la feuille données brutes
 
Dernière édition:
Re : copié une formule sur une colonne variable

Sub test()
'With Sheets("données brutes")
' .Columns("E:K").Delete Shift:=xlToLeft
' .Columns("C:C").Delete Shift:=xlToLeft
'End With
With Sheets("analyse uvc").Range("A1").End(xlToRight)
.Offset(1, 1).FormulaR1C1 = "=VLOOKUP(RC1,'données brutes'!R2C1:R4143C4,3,0)" 'A automatiser (voir fichier)
.Offset(0, 1).FormulaR1C1 = "=now()"
.Offset(1, 1).AutoFill Destination:=.Offset(1, 1).Resize(Sheets("analyse uvc").Range("C65536").End(xlUp).Row - 1) 'C si C est la colonne de reference
End With
End Sub


Voici le code que je viens d'adapter et qui correspond exactement a ce que je recherchais !!!!


Merci,merci,merci,merci ca me permet encore de progresser et bonne nuit !!!!
 
Re : copié une formule sur une colonne variable

Bonjour,

Une version du matin, un peu plus adaptée peut etre.

Sub Test2()
RefFormule = "'données brutes'!R2C2:R" & Sheets("données brutes").Range("A65536").End(xlUp).Row & "C4"
NbLignes = Sheets("analyse uvc").Range("A65536").End(xlUp).Row - 1
Set DerCell = Sheets("analyse uvc").Range("IV1").End(xlToLeft).Offset(0, 1)
DerCell.Value = Date
DerCell.Offset(1, 0).Resize(NbLignes, 1).FormulaR1C1 = "=VLOOKUP(RC2," & RefFormule & ",2,0)"
End Sub

Attention au VLOOKUP.
En bleu, il faut mettre une coordonnée absolue je crois.
En rouge, il faut adresser la bonne colonne de la feuille "données brutes"
2 = la colonne "Ajustement"
3 = la colonne "Ajustement montant"

Je n'ai pas bien compris pourquoi tu supprimais la colonne C dans le fichier
"données brutes" ...
 
Re : copié une formule sur une colonne variable

merci,

Je supprime la colonne C car elle ne me sert a rien car un fois ma recherche faite je fais un collage spéciale de mes valeurs puis je vides mes données brutes !!!!

Le tableau fonctionne très bien et me permet de rapidement distinguer les changement brutaux dans mon stock. (Je l'ai fais aujourd'hui, 2 minutes de travail alors qu'avant ca me prennait des heures.

Mais je pense que vu le nombre de données et le nombre de fois que je répète ces opérations, je devrais surement passer sur access mais comme je sais pas l'utiliser je vais utiliser excel le temps d'apprendre !!!

Merci encore pour ces codes !!!!

Mickael
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
691
L
Réponses
9
Affichages
1 K
Réponses
2
Affichages
1 K
J
Réponses
22
Affichages
3 K
jui42
J
B
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
971
bd.afaf
B
M
Réponses
0
Affichages
949
Maad84
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…