Je s=E8che sur un "petit" probl=E8me.
L'=E9nonc=E9 : j'ai un fichier avec des donn=E9es en colonne A,=20
et j'aimerai que excel copie la cellule, si la ou les=20
cellules suivantes sont vides, jusqu'=E0 trouver une=20
nouvelle donn=E9e dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
R=E9sultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie=20
multiple)
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2 et à étirer vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A, et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2 et à étirer
vers le bas :
=SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+
Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2 et à étirer vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A, et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
François
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2 et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François .
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides !
Exemple :
A1 : 1
A2 : vide
A3 : vide
A4 : 2
Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai
d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre
solution.
Bien cordialement,
François
-----Message d'origine-----
Salut François,
En reprenant ton exemple, tu mets en B1 : =A1, puis en B2
et à étirer
vers le bas :
=SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
pour écrire les
résultats des formules en dur.
A+
Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en colonne
A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2 et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François .
J-Dan
bonjour François,
en VBA, tu peux essayer ceci :
On Error Resume Next Range(Range("A1"), Range("A65536").End(xlUp)).Select For Each c In Selection If c = "" Then c.Value = c.Offset(-1, 0) Next
J-Dan
-----Message d'origine----- Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne
A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
Merci pour votre aide,
Cordialement,
François .
.
bonjour François,
en VBA, tu peux essayer ceci :
On Error Resume Next
Range(Range("A1"), Range("A65536").End(xlUp)).Select
For Each c In Selection
If c = "" Then c.Value = c.Offset(-1, 0)
Next
J-Dan
-----Message d'origine-----
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle
ne
fonctionne pas si j'ai plusieurs cellules vides !
Exemple :
A1 : 1
A2 : vide
A3 : vide
A4 : 2
Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai
d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre
solution.
Bien cordialement,
François
-----Message d'origine-----
Salut François,
En reprenant ton exemple, tu mets en B1 : =A1, puis en
B2
et à étirer
vers le bas :
=SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
pour écrire les
résultats des formules en dur.
A+
Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en
colonne
A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide
(copie
On Error Resume Next Range(Range("A1"), Range("A65536").End(xlUp)).Select For Each c In Selection If c = "" Then c.Value = c.Offset(-1, 0) Next
J-Dan
-----Message d'origine----- Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne
A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
Merci pour votre aide,
Cordialement,
François .
.
Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides !
Ben si ça marche :
Dans ton exemple, je suis en B2, la formule est : =SI(A2="";B1;A2). A2 est vide donc ça affiche la valeur B1 (et en B1 il y a la formule ¡) c'est-à-dire 1.
Je suis maintenant en B3. On a donc =SI(A3="";B2;A3). A3 est vide, tout comme A2. On recopie donc la valeur en B2 soit 1.
Et ça continue comme ça...
A+ Nicolas B.
François wrote:
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
pour écrire les
résultats des formules en dur.
A+ Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides !
Ben si ça marche :
Dans ton exemple, je suis en B2, la formule est : =SI(A2="";B1;A2).
A2 est vide donc ça affiche la valeur B1 (et en B1 il y a la formule
¡) c'est-à-dire 1.
Je suis maintenant en B3. On a donc =SI(A3="";B2;A3).
A3 est vide, tout comme A2. On recopie donc la valeur en B2 soit 1.
Et ça continue comme ça...
A+
Nicolas B.
François wrote:
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides !
Exemple :
A1 : 1
A2 : vide
A3 : vide
A4 : 2
Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai
d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre
solution.
Bien cordialement,
François
-----Message d'origine-----
Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas :
=SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides !
Ben si ça marche :
Dans ton exemple, je suis en B2, la formule est : =SI(A2="";B1;A2). A2 est vide donc ça affiche la valeur B1 (et en B1 il y a la formule ¡) c'est-à-dire 1.
Je suis maintenant en B3. On a donc =SI(A3="";B2;A3). A3 est vide, tout comme A2. On recopie donc la valeur en B2 soit 1.
Et ça continue comme ça...
A+ Nicolas B.
François wrote:
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
pour écrire les
résultats des formules en dur.
A+ Nicolas B.
Michel Gaboly
Bonsoir,
Voici une solution en VBA :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la premère cellule non vode vers la bas ' en partant de A1. Si c est en ligne 2, il n'y a aucune ' cellule vide après A1, toujours vers le bas Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then Range(Range("A1"), Range("A" & NumLigne)).Select Range(Range("A1"), Range("A" & NumLigne)) = Range("A1") End If End Sub
On peut bien sur affiner en remplaçant A1 par ActiveCell ou par le résultat d'un choix, et faire un test pour éviter de recopier la valeur jusqu'en ligne 65536 si toutes les cellules en-dessous de la cellule de `référence sont vides.
Par exemple :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la première cellule non vide vers la bas ' en partant de A1. Si c est en ligne 2, il n'y a aucune ' cellule vide après A1, toujours vers le bas ' NB - si toutes les cellules sont vides en-dessous de la ' cellule active, c correspond à la ligne 65536. Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then MsgBox ActiveSheet.UsedRange.Rows.Count ' Adaptation de NumLigne si au-delà de la zone utilisée ' dans la feuille (par exemple 65 536 alors que seules les ' cellules A1 à F100 sont utilisées. NumLigne = Application.WorksheetFunction.Min(NumLigne, ActiveSheet.UsedRange.Rows.Count) Range(Range("A1"), Range("A" & NumLigne)).Select Range(Range("A1"), Range("A" & NumLigne)) = Range("A1") End If End Sub
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A, et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonsoir,
Voici une solution en VBA :
Sub Recopie()
Dim c As Range, NumLigne As Long
' c correspond à la premère cellule non vode vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas
Set c = Range("A1").End(xlDown)
NumLigne = c.Row - 1
If NumLigne <> 1 Then
Range(Range("A1"), Range("A" & NumLigne)).Select
Range(Range("A1"), Range("A" & NumLigne)) = Range("A1")
End If
End Sub
On peut bien sur affiner en remplaçant A1 par ActiveCell ou par le
résultat d'un choix, et faire un test pour éviter de recopier la valeur
jusqu'en ligne 65536 si toutes les cellules en-dessous de la cellule de
`référence sont vides.
Par exemple :
Sub Recopie()
Dim c As Range, NumLigne As Long
' c correspond à la première cellule non vide vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas
' NB - si toutes les cellules sont vides en-dessous de la
' cellule active, c correspond à la ligne 65536.
Set c = Range("A1").End(xlDown)
NumLigne = c.Row - 1
If NumLigne <> 1 Then
MsgBox ActiveSheet.UsedRange.Rows.Count
' Adaptation de NumLigne si au-delà de la zone utilisée
' dans la feuille (par exemple 65 536 alors que seules les
' cellules A1 à F100 sont utilisées.
NumLigne = Application.WorksheetFunction.Min(NumLigne, ActiveSheet.UsedRange.Rows.Count)
Range(Range("A1"), Range("A" & NumLigne)).Select
Range(Range("A1"), Range("A" & NumLigne)) = Range("A1")
End If
End Sub
Bonjour à tous,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la premère cellule non vode vers la bas ' en partant de A1. Si c est en ligne 2, il n'y a aucune ' cellule vide après A1, toujours vers le bas Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then Range(Range("A1"), Range("A" & NumLigne)).Select Range(Range("A1"), Range("A" & NumLigne)) = Range("A1") End If End Sub
On peut bien sur affiner en remplaçant A1 par ActiveCell ou par le résultat d'un choix, et faire un test pour éviter de recopier la valeur jusqu'en ligne 65536 si toutes les cellules en-dessous de la cellule de `référence sont vides.
Par exemple :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la première cellule non vide vers la bas ' en partant de A1. Si c est en ligne 2, il n'y a aucune ' cellule vide après A1, toujours vers le bas ' NB - si toutes les cellules sont vides en-dessous de la ' cellule active, c correspond à la ligne 65536. Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then MsgBox ActiveSheet.UsedRange.Rows.Count ' Adaptation de NumLigne si au-delà de la zone utilisée ' dans la feuille (par exemple 65 536 alors que seules les ' cellules A1 à F100 sont utilisées. NumLigne = Application.WorksheetFunction.Min(NumLigne, ActiveSheet.UsedRange.Rows.Count) Range(Range("A1"), Range("A" & NumLigne)).Select Range(Range("A1"), Range("A" & NumLigne)) = Range("A1") End If End Sub
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A, et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
-- Cordialement,
Michel Gaboly http://www.gaboly.com
François
Parfait !!!
Merci encore pour votre aide et longue vie au forum !
-----Message d'origine----- Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François .
.
Parfait !!!
Merci encore pour votre aide et longue vie au forum !
-----Message d'origine-----
Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle
ne
fonctionne pas si j'ai plusieurs cellules vides !
Exemple :
A1 : 1
A2 : vide
A3 : vide
A4 : 2
Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai
d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre
solution.
Bien cordialement,
François
-----Message d'origine-----
Salut François,
En reprenant ton exemple, tu mets en B1 : =A1, puis en
B2
et à étirer
vers le bas :
=SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs
pour écrire les
résultats des formules en dur.
A+
Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en colonne
A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
Merci encore pour votre aide et longue vie au forum !
-----Message d'origine----- Salut Nicolas B.
J'avais exploré cette piste, mais malheureusement, elle ne
fonctionne pas si j'ai plusieurs cellules vides ! Exemple : A1 : 1 A2 : vide A3 : vide A4 : 2 Là, la formule me retourne une cellule vide en A3.
De plus, si tu as une idée en VBA, car derrière j'ai d'autre macros... Mais bon !
Merci pour tes pistes, je reste preneur d'une autre solution.
Bien cordialement,
François
-----Message d'origine----- Salut François,
En reprenant ton exemple, tu mets en B1 : ¡, puis en B2
et à étirer
vers le bas : =SI(A2="";B1;A2)
Tu peux ensuite faire un copier coller spécial Valeurs pour écrire les
résultats des formules en dur.
A+ Nicolas B.
François wrote:
Bonjour à tous,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François .
.
François
Merci Michel pour ces précisions.
Bien cordialement,
François
-----Message d'origine----- Bonsoir,
Voici une solution en VBA :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la premère cellule non vode vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then Range(Range("A1"), Range("A" & NumLigne)).Select
On peut bien sur affiner en remplaçant A1 par ActiveCell ou par le
résultat d'un choix, et faire un test pour éviter de recopier la valeur
jusqu'en ligne 65536 si toutes les cellules en-dessous de la cellule de
`référence sont vides.
Par exemple :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la première cellule non vide vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas ' NB - si toutes les cellules sont vides en-dessous de la
' cellule active, c correspond à la ligne 65536. Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then MsgBox ActiveSheet.UsedRange.Rows.Count ' Adaptation de NumLigne si au-delà de la zone utilisée
' dans la feuille (par exemple 65 536 alors que seules les
' cellules A1 à F100 sont utilisées. NumLigne = Application.WorksheetFunction.Min(NumLigne,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
-- Cordialement,
Michel Gaboly http://www.gaboly.com
.
Merci Michel pour ces précisions.
Bien cordialement,
François
-----Message d'origine-----
Bonsoir,
Voici une solution en VBA :
Sub Recopie()
Dim c As Range, NumLigne As Long
' c correspond à la premère cellule non vode vers la
bas
' en partant de A1. Si c est en ligne 2, il n'y a
aucune
' cellule vide après A1, toujours vers le bas
Set c = Range("A1").End(xlDown)
NumLigne = c.Row - 1
If NumLigne <> 1 Then
Range(Range("A1"), Range("A" &
NumLigne)).Select
On peut bien sur affiner en remplaçant A1 par ActiveCell
ou par le
résultat d'un choix, et faire un test pour éviter de
recopier la valeur
jusqu'en ligne 65536 si toutes les cellules en-dessous de
la cellule de
`référence sont vides.
Par exemple :
Sub Recopie()
Dim c As Range, NumLigne As Long
' c correspond à la première cellule non vide vers la
bas
' en partant de A1. Si c est en ligne 2, il n'y a
aucune
' cellule vide après A1, toujours vers le bas
' NB - si toutes les cellules sont vides en-dessous
de la
' cellule active, c correspond à la ligne 65536.
Set c = Range("A1").End(xlDown)
NumLigne = c.Row - 1
If NumLigne <> 1 Then
MsgBox ActiveSheet.UsedRange.Rows.Count
' Adaptation de NumLigne si au-delà de la
zone utilisée
' dans la feuille (par exemple 65 536
alors que seules les
' cellules A1 à F100 sont utilisées.
NumLigne =
Application.WorksheetFunction.Min(NumLigne,
Je sèche sur un "petit" problème.
L'énoncé : j'ai un fichier avec des données en colonne
A,
et j'aimerai que excel copie la cellule, si la ou les
cellules suivantes sont vides, jusqu'à trouver une
nouvelle donnée dans la plage A1:Ax
exemple :
A1 : 1
A2 : vide
A3 : 2
A4 : 3
A5 : vide ...
Résultat :
A1 : 1
A2 : 1
A3 : 2
A4 : 3
Il se peut qu'il y ait plus qu'une cellule vide (copie
multiple)
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la premère cellule non vode vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then Range(Range("A1"), Range("A" & NumLigne)).Select
On peut bien sur affiner en remplaçant A1 par ActiveCell ou par le
résultat d'un choix, et faire un test pour éviter de recopier la valeur
jusqu'en ligne 65536 si toutes les cellules en-dessous de la cellule de
`référence sont vides.
Par exemple :
Sub Recopie() Dim c As Range, NumLigne As Long ' c correspond à la première cellule non vide vers la bas
' en partant de A1. Si c est en ligne 2, il n'y a aucune
' cellule vide après A1, toujours vers le bas ' NB - si toutes les cellules sont vides en-dessous de la
' cellule active, c correspond à la ligne 65536. Set c = Range("A1").End(xlDown) NumLigne = c.Row - 1 If NumLigne <> 1 Then MsgBox ActiveSheet.UsedRange.Rows.Count ' Adaptation de NumLigne si au-delà de la zone utilisée
' dans la feuille (par exemple 65 536 alors que seules les
' cellules A1 à F100 sont utilisées. NumLigne = Application.WorksheetFunction.Min(NumLigne,
Je sèche sur un "petit" problème. L'énoncé : j'ai un fichier avec des données en colonne A,
et j'aimerai que excel copie la cellule, si la ou les cellules suivantes sont vides, jusqu'à trouver une nouvelle donnée dans la plage A1:Ax exemple : A1 : 1 A2 : vide A3 : 2 A4 : 3 A5 : vide ... Résultat : A1 : 1 A2 : 1 A3 : 2 A4 : 3 Il se peut qu'il y ait plus qu'une cellule vide (copie multiple)
Merci pour votre aide,
Cordialement,
François
-- Cordialement,
Michel Gaboly http://www.gaboly.com
.
sabatier
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas
l'essentiel restant de ne pas se tromper dans la rédaction du cide....
jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:41336F7D.10260C69@Suppgaboly.com...
' c correspond à la premère cellule non vode vers la bas
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas
Michel Gaboly
M'enfin :-)))
Les fautes de frappe dans les commentaires ne sont pas tout de même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris que tu voulais dire "cidre", ce qui semble pour le moins inat- tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas
-- Cordialement,
Michel Gaboly http://www.gaboly.com
M'enfin :-)))
Les fautes de frappe dans les commentaires ne sont pas tout de
même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris
que tu voulais dire "cidre", ce qui semble pour le moins inat-
tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide....
jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:41336F7D.10260C69@Suppgaboly.com...
' c correspond à la premère cellule non vode vers la bas
Les fautes de frappe dans les commentaires ne sont pas tout de même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris que tu voulais dire "cidre", ce qui semble pour le moins inat- tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas
-- Cordialement,
Michel Gaboly http://www.gaboly.com
jps
:-)))))))))))))))))))) jps
"Michel Gaboly" a écrit dans le message de news:
M'enfin :-)))
Les fautes de frappe dans les commentaires ne sont pas tout de même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris que tu voulais dire "cidre", ce qui semble pour le moins inat- tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas
-- Cordialement,
Michel Gaboly http://www.gaboly.com
:-))))))))))))))))))))
jps
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:413414CE.BB6F5A95@Suppgaboly.com...
M'enfin :-)))
Les fautes de frappe dans les commentaires ne sont pas tout de
même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris
que tu voulais dire "cidre", ce qui semble pour le moins inat-
tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide....
jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:41336F7D.10260C69@Suppgaboly.com...
' c correspond à la premère cellule non vode vers la bas
Les fautes de frappe dans les commentaires ne sont pas tout de même pas si graves ;-)))
Quant au "cide", avec mes origines antillaises, j'ai bien compris que tu voulais dire "cidre", ce qui semble pour le moins inat- tendu de ta part. ;-)))))))
l'essentiel restant de ne pas se tromper dans la rédaction du cide.... jps (qui va sûrement faire un bode sur ce coup)
"Michel Gaboly" a écrit dans le message de news:
' c correspond à la premère cellule non vode vers la bas