copié une formule sur une colonne variable

ninajams

XLDnaute Junior
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:D2875")
Range("D2:D2875").Select


Cordialement

Mickael
 

ninajams

XLDnaute Junior
Re : copié une formule sur une colonne variable

voici le fichier réduit car normalement y'a environs 3000 références
 

Pièces jointes

  • Nouveau Dossier compressé.zip
    15.1 KB · Affichages: 32
  • Nouveau Dossier compressé.zip
    15.1 KB · Affichages: 36
  • Nouveau Dossier compressé.zip
    15.1 KB · Affichages: 36

Catrice

XLDnaute Barbatruc
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
 

ninajams

XLDnaute Junior
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 édition:

Catrice

XLDnaute Barbatruc
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

  • essai.zip
    11.1 KB · Affichages: 36
  • essai.zip
    11.1 KB · Affichages: 38
  • essai.zip
    11.1 KB · Affichages: 36

Catrice

XLDnaute Barbatruc
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:

ninajams

XLDnaute Junior
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 !!!!
 

Catrice

XLDnaute Barbatruc
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" ...
 

ninajams

XLDnaute Junior
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
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS