Je cherche à simplifier une macro

Le
G. L
Bonsoir à toutes et tous,

Je cherche à simplifier une macro, pour atteindre ce résultat :

Variable nommée Lt = K

La colonne DB contient qu'une seule lettre par ligne, plusieurs lignes
peuvent avoir la même lettre, je récupère toutes les valeurs de la colonne
DC de toutes les lignes ayant en DB la lettre saisie en Lt.

Exemple :

DB DC DF

A 82979x 27546h

A 55508g 55583t

A 70861f 74669z

B 30797h 50833t

B 55972b 77421a

B 20782a 87506y

B 50564u

K 27546h

K 55583t

K 74669z

K 50833t

K 77421a

K 87506y

N 74614x

Je trouve ma macro pas très élégante, bien qu'elle me permette d'obtenir le
résultat.

Je copie ligne à ligne DB et DC en DG1 & DH1 et si DG1 = Lt je le copie en
DFx .. DFx+1

J'ai essayé avec une formule (décaler / index / equiv) mais je suis encore
plus nul, ce n'est décalé c'est déc.né en tout genre, enfin juste pour
confirmer ma nullité!

Vos avis en VBA et où formules seront les bienvenus pour moi.

Merci d'avance

Cordialement

Gérard
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4463641
Bonjour,

Lt = "K"
p = Application.Match(Lt, [DB:DB], 0)
If Not IsError(p) Then
[DC1].Offset(p - 1).Resize(Application.CountIf([DB1:DB], lt)).Copy
[DF1]
End If

Cordialement JB

On 23 avr, 21:40, "G. "
Bonsoir à toutes et tous,

Je cherche à simplifier une macro, pour atteindre ce résultat :

Variable nommée Lt = K

La colonne DB contient qu'une seule lettre par ligne, plusieurs lignes
peuvent avoir la même lettre, je récupère toutes les valeurs de la colonne
DC de toutes les lignes ayant en DB la lettre saisie en Lt.

Exemple :

DB DC DF

A 82979x 27546h

A 55508g 55583t

A 70861f 74669z

B 30797h 50833t

B 55972b 77421a

B 20782a 87506y

B 50564u

K 27546h

K 55583t

K 74669z

K 50833t

K 77421a

K 87506y

N 74614x

Je trouve ma macro pas très élégante, bien qu'elle me permette d'ob tenir le
résultat.

Je copie ligne à ligne DB et DC en DG1 & DH1 et si DG1 = Lt je le cop ie en
DFx .. DFx+1

J'ai essayé avec une formule (décaler / index / equiv) mais je suis e ncore
plus nul, ce n'est décalé c'est déc.né en tout genre, enfin juste pour
confirmer ma nullité!

Vos avis en VBA et où formules seront les bienvenus pour moi.

Merci d'avance

Cordialement

Gérard


JB
Le #4463631
Bonjour,

Lt = "K"
p = Application.Match(Lt, [DB:DB], 0)
If Not IsError(p) Then
[DC1].Offset(p - 1).Resize(Application.CountIf([DB:DB], Lt)).Copy
[DF1]
End If

http://cjoint.com/?eyhjr0e2wm

Cordialement JB

On 23 avr, 21:40, "G. "
Bonsoir à toutes et tous,

Je cherche à simplifier une macro, pour atteindre ce résultat :

Variable nommée Lt = K

La colonne DB contient qu'une seule lettre par ligne, plusieurs lignes
peuvent avoir la même lettre, je récupère toutes les valeurs de la colonne
DC de toutes les lignes ayant en DB la lettre saisie en Lt.

Exemple :

DB DC DF

A 82979x 27546h

A 55508g 55583t

A 70861f 74669z

B 30797h 50833t

B 55972b 77421a

B 20782a 87506y

B 50564u

K 27546h

K 55583t

K 74669z

K 50833t

K 77421a

K 87506y

N 74614x

Je trouve ma macro pas très élégante, bien qu'elle me permette d'ob tenir le
résultat.

Je copie ligne à ligne DB et DC en DG1 & DH1 et si DG1 = Lt je le cop ie en
DFx .. DFx+1

J'ai essayé avec une formule (décaler / index / equiv) mais je suis e ncore
plus nul, ce n'est décalé c'est déc.né en tout genre, enfin juste pour
confirmer ma nullité!

Vos avis en VBA et où formules seront les bienvenus pour moi.

Merci d'avance

Cordialement

Gérard


G. L
Le #4463511
Bonjour Jacques,

Merci d'avoir pris le temps de regarder mon problème.

C'est une simplification radicale, et qui va bcp plus vite, c'est super !

A chaque visite, et elles sont très nombreuses, je suis toujours ravi de
voir l'ingéniosité et le savoir généreusement diffusé.

Cordialement

Gérard



"JB"
Bonjour,

Lt = "K"
p = Application.Match(Lt, [DB:DB], 0)
If Not IsError(p) Then
[DC1].Offset(p - 1).Resize(Application.CountIf([DB1:DB], lt)).Copy
[DF1]
End If

Cordialement JB

On 23 avr, 21:40, "G. "
Bonsoir à toutes et tous,

Je cherche à simplifier une macro, pour atteindre ce résultat :

Variable nommée Lt = K

La colonne DB contient qu'une seule lettre par ligne, plusieurs lignes
peuvent avoir la même lettre, je récupère toutes les valeurs de la colonne
DC de toutes les lignes ayant en DB la lettre saisie en Lt.

Exemple :

DB DC DF

A 82979x 27546h

A 55508g 55583t

A 70861f 74669z

B 30797h 50833t

B 55972b 77421a

B 20782a 87506y

B 50564u

K 27546h

K 55583t

K 74669z

K 50833t

K 77421a

K 87506y

N 74614x

Je trouve ma macro pas très élégante, bien qu'elle me permette d'obtenir
le
résultat.

Je copie ligne à ligne DB et DC en DG1 & DH1 et si DG1 = Lt je le copie en
DFx .. DFx+1

J'ai essayé avec une formule (décaler / index / equiv) mais je suis encore
plus nul, ce n'est décalé c'est déc.né en tout genre, enfin juste pour
confirmer ma nullité!

Vos avis en VBA et où formules seront les bienvenus pour moi.

Merci d'avance

Cordialement

Gérard


Publicité
Poster une réponse
Anonyme