Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier données d'une cellule jusqu'à la prochaine non vide et recommencer

27 réponses
Avatar
suze32
Bonjour,

Je traite des donn=E9es issus d'un logiciel comptable en l'exportant.

Dans ma colonne A, j'ai une donn=E9es dans la cellule "A3", "A54", "A85", "=
A87"...
(entre toutes ces cellules, les cellules sont vides)

Je souhaiterais pouvoir copier les donn=E9es de la cellule A3 jusqu'=E0 A53=
, celle de A54 jusqu'=E0 A84 etc... jusqu'=E0 la fin de la feuille.

A chaque extraction, les cellules remplies ne seront pas les m=EAmes.

Merci pour votre aide
Bonne journ=E9e,

7 réponses

1 2 3
Avatar
Jacquouille
Salut la foule

Comme je peux voir, il s'accroche, notre Péhemme,
jusqu'à mettre les points à côté des i -))

Bonnes fêtes à toi aussi.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Péhemme" a écrit dans le message de groupe de discussion :
l8rvv6$ljt$

Ahrrr !
Je me mets aux explications de texte et j'oublie un élément important.
On ne soulignera jamais assez l'importance de ce point (.) signifiant
l'appartenance à l'objet à traiter ; ici la feuille "Extraction".
Tu vois, je suis (du verbe suivre).
:-)
Bonnes fêtes de fin d'année à toi aussi
Grosses bises à ta femme et à ta fille.
Michel

"Jacky" a écrit dans le message de groupe de discussion :
l8ruhf$i16$

Hello Michel.

Sans oublier le "." (point) qui c'était perdu en traversant la grande mare.
devant la deuxième Cells
.Cells(i, 1).Value = .Cells(i - 1, 1).Value

--
Bomme Fête de fin d'année
JJ


"Péhemme" a écrit dans le message de news:
l8rsru$dpg$
Bonjour suze32, bonjour à Tous,

Ce que fait la macro de Jacky (les commentaires sont dans la macro)
Sub jj()
Dim i As Long
Dim Fin

With Sheets("Extraction")
'Dernière ligne de la colonne B
Fin = .Cells(.Rows.Count, 2).End(xlUp).Row

For i = 3 To Fin '.Cells(.Rows.Count, 2).End(xlUp).Row
'Si dans la colonne A, la cellule au-dessus n'est pas vide
If .Cells(i - 1, 1) <> "" Then
'et si la cellule adjacente n'est pas vide
If .Cells(i, 2) <> "" Then
'la cellule de la colonne A prend la valeur de la
'cellule du dessus
.Cells(i, 1).Value = Cells(i - 1, 1).Value
End If
End If
Next
End With
End Sub

Bonne journée à Tous
Michel



"suze32" a écrit dans le message de groupe de discussion :


Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment
votre code se rapporte à une colonne spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes
et cela ne fonctionne pas.

Merci pour votre aide
Avatar
Jacky
Re..
J'avoue que c'est un peu dur pour débuter :o)
comment votre code se rapporte à une colonne spécifique?


Avec ceci
Cells(Ligne,Colonne)

Dans cette boucle...
'---------------
With Sheets("Extraction")
For i = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
MsgBox Cells(i, 1).Value
Next
End With
'----------------
Ceci
.Cells(.Rows.Count, 2).End(xlUp).Row
'calcul la longueur de la colonne B de la feuille "Extraction"

.Cells(i, 1).Value retourne la valeur des cellules A3, A4, A5, A6........Ax
Jusqu'à la cellule "Ax" dont x est calculé par ".Cells(.Rows.Count, 2).End(xlUp).Row"

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment votre code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.

Merci pour votre aide
Avatar
Jacky
Re..
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.


Il faudra donner un exemple avec les 10 colonnes concernées

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment votre code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.

Merci pour votre aide
Avatar
Jacquouille
Hello Jacky
Tu n'as pas compris.....
C'est comme pour les remises de prix de l'Administration.
On te demande le prix pour une colonne, puis on t'annonce qu'il y en a
10.... -))
Dans ce cas, ta macro fonctionne bien, que les colonnes C, D ..... soient
remplies ou non.
Au début d ce forum, tu aurais fait fortune en cacahuètes .....
-))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
l8se0f$att$

Re..
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et
cela ne fonctionne pas.


Il faudra donner un exemple avec les 10 colonnes concernées

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment votre
code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et
cela ne fonctionne pas.

Merci pour votre aide
Avatar
Jacky
Hello Jacques,

Et si en plus l'administrée en question est blonde....J'te dis pas..

Bon..ok! .je sors.
;o))))

Dans ce cas, ta macro fonctionne bien...


Celle de Denis aussi et plus rapide, mais plus compliqué pour une débutante
Bien que je ne sois pas d'accord sur cette méthode
".Range("A3:A" & .Range("B6556").End(xlUp).Row)"
:-)
--
Bonnes fêtes de fin d'année
JJ


"Jacquouille" a écrit dans le message de news: l8sfq2$fvm$
Hello Jacky
Tu n'as pas compris.....
C'est comme pour les remises de prix de l'Administration.
On te demande le prix pour une colonne, puis on t'annonce qu'il y en a 10.... -))
Dans ce cas, ta macro fonctionne bien, que les colonnes C, D ..... soient remplies ou non.
Au début d ce forum, tu aurais fait fortune en cacahuètes .....
-))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion : l8se0f$att$

Re..
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.


Il faudra donner un exemple avec les 10 colonnes concernées

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment votre code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.

Merci pour votre aide

Avatar
Jacquouille
Ce ne serait pas une astuce du style derL calculée sur la colB, puis
reprendre ce nombre pour faire la plage A3:A&derL colB ?
Mais si colA est plus longue que colB ?



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
l8shev$kr3$

Hello Jacques,

Et si en plus l'administrée en question est blonde....J'te dis pas..

Bon..ok! .je sors.
;o))))

Dans ce cas, ta macro fonctionne bien...


Celle de Denis aussi et plus rapide, mais plus compliqué pour une débutante
Bien que je ne sois pas d'accord sur cette méthode
".Range("A3:A" & .Range("B6556").End(xlUp).Row)"
:-)
--
Bonnes fêtes de fin d'année
JJ


"Jacquouille" a écrit dans le message de news:
l8sfq2$fvm$
Hello Jacky
Tu n'as pas compris.....
C'est comme pour les remises de prix de l'Administration.
On te demande le prix pour une colonne, puis on t'annonce qu'il y en a
10.... -))
Dans ce cas, ta macro fonctionne bien, que les colonnes C, D ..... soient
remplies ou non.
Au début d ce forum, tu aurais fait fortune en cacahuètes .....
-))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
l8se0f$att$

Re..
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes
et cela ne fonctionne pas.


Il faudra donner un exemple avec les 10 colonnes concernées

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment
votre code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes
et cela ne fonctionne pas.

Merci pour votre aide

Avatar
Jacky
RE..
Ce ne serait pas une astuce du style derL calculée sur la colB


Si, mais comme elle est sujet à être variable, j'utiliserais
.Range("A3:A" & .Cells(Rows.Count, "B").End(xlUp).Row)

Mais si colA est plus longue que colB ?


Ca, comme c'est présenté, ce n'est pas possible
--
Salutations
JJ


"Jacquouille" a écrit dans le message de news: l8shs0$lvo$
Ce ne serait pas une astuce du style derL calculée sur la colB, puis reprendre ce nombre pour faire la plage
A3:A&derL colB ?
Mais si colA est plus longue que colB ?



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion : l8shev$kr3$

Hello Jacques,

Et si en plus l'administrée en question est blonde....J'te dis pas..

Bon..ok! .je sors.
;o))))

Dans ce cas, ta macro fonctionne bien...


Celle de Denis aussi et plus rapide, mais plus compliqué pour une débutante
Bien que je ne sois pas d'accord sur cette méthode
".Range("A3:A" & .Range("B6556").End(xlUp).Row)"
:-)
--
Bonnes fêtes de fin d'année
JJ


"Jacquouille" a écrit dans le message de news: l8sfq2$fvm$
Hello Jacky
Tu n'as pas compris.....
C'est comme pour les remises de prix de l'Administration.
On te demande le prix pour une colonne, puis on t'annonce qu'il y en a 10.... -))
Dans ce cas, ta macro fonctionne bien, que les colonnes C, D ..... soient remplies ou non.
Au début d ce forum, tu aurais fait fortune en cacahuètes .....
-))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion : l8se0f$att$

Re..
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.


Il faudra donner un exemple avec les 10 colonnes concernées

--
Salutations
JJ


"suze32" a écrit dans le message de news:

Bonjour Jacky,

Je ne suis pas encore très forte en VBA, en pleine formation, comment votre code se rapporte à une colonne
spécifique?
Car j'ai essayé de le retranscrit dans mon fichier où il y a 10 colonnes et cela ne fonctionne pas.

Merci pour votre aide




1 2 3