[Optimisation] Find + with impossible

  • Initiateur de la discussion Initiateur de la discussion mathiouze22
  • 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 !

M

mathiouze22

Guest
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 modification par un modérateur:
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
@+
 
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
 
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
 
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...
 
Re : [Optimisation] Find + with impossible

magnifique 🙂
et je n'avais pas compris l'histoire de la source pour l'autofill mais avec ton code je vois du coup
encore merci !!! et bonne journée à tout le monde malgré le temps !
 
- 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
2
Affichages
588
A
Réponses
11
Affichages
2 K
A
V
Réponses
2
Affichages
2 K
vynmarius
V
M
Réponses
11
Affichages
2 K
Melidan2006
M
F
Réponses
14
Affichages
2 K
F
N
Réponses
0
Affichages
916
Nananinanana
N
N
Réponses
0
Affichages
903
Nananinanana
N
G
Réponses
18
Affichages
3 K
G
Retour