[Optimisation] Find + with impossible

mathiouze22

XLDnaute Junior
bonjour

J'ai développé une macro qui permet de saisir des lignes comptables dans un budget.
le principe, c'est de vérifier d'abord si la référence a déjà été saisie avant de la (re)créer.
L'outil de saisie est sur la Feuil1 et la Feuil2 est l'onglet où sont recopiées les données.

Pour trouver si la référence existe, je passe par ce bout de code parce que je n'arrive pas à gérer le find + with, ca me retourne une erreur.
le problème avec ce code c'est que c'est bcp plus long à tourner donc j'aimerais bien savoir comment le gérer avec un "with"

Code:
sheets("Liste budget").activate
Cells.Find(what:=ref).activate
    'ligne de la référence
    X = ActiveCell.Row
    'colonne de la référence
    j = ActiveCell.End(xlToRight).Column + 1
    'référence
    Cells(X, j).Value = refd

j'espère que tout est clair sinon n'hésitez pas à me poser des questions :)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : [Optimisation] Find + with impossible

Bonjour,

peut être comme ceci, non testé...
Code:
Dim c As Range, x As Long, j As Long
With Sheets("Liste budget")
    Set c = .Cells.Find(what:=ref)
        'ligne de la référence
    If Not c Is Nothing Then
        x = c.Row
        'colonne de la référence
        j = c.End(xlToRight).Column + 1
        'référence
        .Cells(x, j).Value = refd
    End If
End With
bonne journée
@+
 

mathiouze22

XLDnaute Junior
Re : [Optimisation] Find + with impossible

merci bcp Pierrot93 pour tes réponses
du coup j'ai une question subsidiaire :
j'applique ta méthode pour un autofill mais cela ne marche, pourquoi ? :(
Code:
Set c = .Range(.Cells(j - 1, 3), .Cells(j - 1, 4))
Set d = .Range(.Cells(j, 3), .Cells(j, 4))
c.AutoFill Destination:=d
 

mathiouze22

XLDnaute Junior
Re : [Optimisation] Find + with impossible

en fait j'insère une ligne à la fin d'un tableau et j'aimerais que les formules présentes dans la ligne du dessus soient "autofillées" aux cellules de la nouvelle ligne créée :)
après en passant par l'enregistreur de macro ca sort une formule du type
Code:
Selection.AutoFill Destination:=Range("C45:D46")
pour moi le C étant la source, et le D étant la destination :s
du coup je ne vois du coup pas trop ce qui bloque
 

Pierrot93

XLDnaute Barbatruc
Re : [Optimisation] Find + with impossible

Re,

essaye peut être comme ceci :
Code:
Set c = .Range(.Cells(j - 1, 3), .Cells(j - 1, 4))
Set d = .Range(.Cells(j, 3), .Cells(j, 4))
c.AutoFill Destination:= Union(c,d)

non testé bien sur...
 

Discussions similaires

Statistiques des forums

Discussions
312 485
Messages
2 088 802
Membres
103 971
dernier inscrit
abdazee