VBA _ Loop jusqu'à la prochaine cell non vide?

Hello tout le monde.

Voilà j'ai décidé de passer un gros project d'automatisation, et arrivée où j'en suis, je bloque. J'aurais besoin de vos lumières si quelqu'un peut m'aider.

J'ai un fichier tel que le fichier joint. La 1ere colonne est ma base, puis je construis la 2e et la 3e à travers d'autres fichiers.

Je souhaiterais ajouter en colonne D, ce que j'ai en colonne A de cette manière:

1. seuls les 'A' en colonne B ont une donnée en colonne 'C', toujours A ou B;

2. je voudrais croiser les A et B: par exemple en cell D1 je voudrais avoir la cell en colonne A pour la ligne du prochain B trouvé (donc A4);

3. et donc en cell D4, je voudrais ce qu'il y a en A1

4. et ainsi de suite jusqu'à la fin, ça marche par paire.

Sauf que les itérations dans les paires sont pas les mêmes. Par exemple entre le premier A et le premier B, j'ai 2 cell vides, quand j'en ai 1 seule sur le croisement suivant. Et je peux avoir A puis B ou B puis A. C'est un point important car j'aurais besoin de le refaire plus tard et bien sûrs les itérations seront encore différentes et toujours de plus en plus éloignées.

J'ai mis en colonne E ce que je veux en colonne D. Est-ce qu'une âme charitable pourrait m'aider?

Merci d'avance!

9book1.xlsx (9.03 Ko)

Bonjour Jowil le forum

ton fichier en retour

tu testes et tu me redis

a+

Papou

16jowill-v1.xlsm (20.53 Ko)

Hello paritec!

Merci beaucoup pour ton aide. C'est exactement ce que je veux faire.

J'ai essayé de l'adapter pour le re-faire sur d'autres colonnes mais je n'y arrive pas parce que je ne comprends pas le code ahah. J'ai voulu adapter pour avoir le nom en colonne J, et le A/B en colonne L, mais sans succès:

Sub test()
    Dim i&, aa, a&, deb&, fin&
    With Sheet1
        aa = .Range("A1:L" & .Range("A" & Rows.Count).End(3).Row)
    End With
    For i = 1 To UBound(aa)
        If aa(i, 12) <> "" Then
        deb = i
        For a = i + 1 To UBound(aa)
            If aa(a, 12) <> "" Then fin = a: Exit For
        Next a
        aa(deb, 10) = aa(fin, 1)
        aa(fin, 10) = aa(deb, 1)
        i = fin
        End If
    Next i
    Sheet1.Range("A1").Resize(UBound(aa), UBound(aa, 12)) = aa
End Sub

Au cas où je change A/B par d'autres lettres, est-ce que cela a un impact sur la macro?

Encore merci pour ton aide!!

Re Jowil le forum

bah oui tu fais une demande bidon qui ne correspond pas à ton fichier et après tu es dans la mouise

tu repasses le fichier avec les explications de ce que tu veux et ou avec un peu de donnée et je modifie

pour la contenance de la cellule non aucune importance un chiffre une lettre 50 lettres c'est pareil

a+

Papou

Sauf que les itérations dans les paires sont pas les mêmes. Par exemple entre le premier A et le premier B, j'ai 2 cell vides, quand j'en ai 1 seule sur le croisement suivant. Et je peux avoir A puis B ou B puis A. C'est un point important car j'aurais besoin de le refaire plus tard et bien sûrs les itérations seront encore différentes et toujours de plus en plus éloignées.

J'ai mis en colonne E ce que je veux en colonne D. Est-ce qu'une âme charitable pourrait m'aider?

Merci d'avance!

Hello, j'ai mentionné que j'en aurais besoin sur plusieurs colonnes depuis le début

J'en ai besoin en colonne D, comme j'en ai besoin en colonne J, et j'en aurai besoin ailleurs aussi.

C'est pas un fichier bidon, c'est le début d'un fichier, et pour le moment c'est là où j'en suis L'idée c'est aussi que je puisse comprendre ce qui est fait pour l'adapter autant de fois que j'en aurais besoin et pas demander à quelqu'un de créer mon fichier de A à Z.

Encore merci!

Ré bonjour Jowil le forum

Je te demande de modifier le fichier et de le repasser j’ai peut être une bonne raison non???

Maintenant c’est pas pour moi le fichier alors fait comme tu as envie

Tu envoies le fichier modifié je le corrige tu ne l’envoies pas tu te débrouilles tout seul

Tu as pour la colonne D et cela fonctionne donc moi j’ai fait mon boulot.

Si tu veux la suite la balle est dans ton camp

A +

Papou

J'ai joint le même fichier où j'ai ajouté en colonne L les nouveaux A/B, et je souhaiterai avoir les noms en colonne L.

Merci d'avance! J'ai vraiment besoin de comprendre comment ça marche car je vais avoir besoin de le faire jusqu'à 10 fois...

4book1.xlsx (9.07 Ko)

Re Jowil le forum

Franchement tu te moques de moi tu renvoies le fichier et la macro n'est plus dedans, tu penses que je n'ai que cela à faire, de refaire le boulot et repartir à zéro??

De plus

J'ai joint le même fichier où j'ai ajouté en colonne L les nouveaux A/B, et je souhaiterai avoir les noms en colonne L.

si tu as les repère A B en colonne L tu ne peux pas avoir les noms en colonne L ou alors tu m'expliques?

a+

Papou

Yup, sorry, j'ai pas joint le bon fichier. Celui là est le bon!

Je veux les noms en colonne J. Désolée!

Désolée, et encore merci!

6jowill-v1.xlsm (22.00 Ko)

Bonsoir jowil le forum

ton fichier en retour

a+

Papou

23jowill-v3.xlsm (20.38 Ko)

Encore merci!

Re Jowil le forum

y'a pas de quoi, et quand on te demande un fichier ce n'est pas pour t'énerver, mais pour répondre, et répondre correctement

a+

Papou

Rechercher des sujets similaires à "vba loop prochaine vide"