Bonjour à tous,
cette question a sans doute été souvent posée sur le forum mais je ne
suis pas arrivé à trouver une solution qui réponde exactement à mon
problème: ma feuille de calcul se présente ainsi:
A B
1 10 toto
2
3
4 11
5 titi
.
. 12
.
30 13
.
50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes
A & B tant qu'elles sont vides et quand on rencontre une nouvelle
valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au
bas de la feuille.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ST
Une petite macro en VB s' impose du genre
Sub recopie() Dim I As Integer, J As Integer Dim val_I As String, val_J As String J = Cells.SpecialCells(xlCellTypeLastCell).Row For I = 1 To J If Range("A" & I).Value <> "" Then val_I = Range("A" & I).Value Else Range("A" & I).Value = val_I End If If Range("B" & I).Value <> "" Then val_J = Range("B" & I).Value Else Range("B" & I).Value = val_J End If Next I End Sub
Cette macro vérifie le contenu de chaque cellule et le copie dans une variable si la cellule n'est pas vide. Ensuite, le contenu de la variable est insérée dans chaque cellule si celle-ci est vide.
Tu vas certainement devoir adapter la macro car je pense que le résultat ne te conviendra pas pour la ligne 4 de ton fichier exemple car ma macro va coller toto dans la cellule B4
Bon courage
ST
"Le Youki ..." a écrit dans le message de news:
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
D'avance merci de vos réponses, cordialement,
Le Youki ...
Une petite macro en VB s' impose du genre
Sub recopie()
Dim I As Integer, J As Integer
Dim val_I As String, val_J As String
J = Cells.SpecialCells(xlCellTypeLastCell).Row
For I = 1 To J
If Range("A" & I).Value <> "" Then
val_I = Range("A" & I).Value
Else
Range("A" & I).Value = val_I
End If
If Range("B" & I).Value <> "" Then
val_J = Range("B" & I).Value
Else
Range("B" & I).Value = val_J
End If
Next I
End Sub
Cette macro vérifie le contenu de chaque cellule et le copie dans une
variable si la cellule n'est pas vide.
Ensuite, le contenu de la variable est insérée dans chaque cellule si
celle-ci est vide.
Tu vas certainement devoir adapter la macro car je pense que le résultat ne
te conviendra pas pour la ligne 4 de ton fichier exemple car ma macro va
coller toto dans la cellule B4
Bon courage
ST
"Le Youki ..." <no-spam-le.youki@free.fr> a écrit dans le message de
news:mn.cbf77d54f668d7b2.19252@free.fr...
Bonjour à tous,
cette question a sans doute été souvent posée sur le forum mais je ne
suis pas arrivé à trouver une solution qui réponde exactement à mon
problème: ma feuille de calcul se présente ainsi:
A B
1 10 toto
2
3
4 11
5 titi
.
. 12
.
30 13
.
50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes
A & B tant qu'elles sont vides et quand on rencontre une nouvelle
valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au
bas de la feuille.
Sub recopie() Dim I As Integer, J As Integer Dim val_I As String, val_J As String J = Cells.SpecialCells(xlCellTypeLastCell).Row For I = 1 To J If Range("A" & I).Value <> "" Then val_I = Range("A" & I).Value Else Range("A" & I).Value = val_I End If If Range("B" & I).Value <> "" Then val_J = Range("B" & I).Value Else Range("B" & I).Value = val_J End If Next I End Sub
Cette macro vérifie le contenu de chaque cellule et le copie dans une variable si la cellule n'est pas vide. Ensuite, le contenu de la variable est insérée dans chaque cellule si celle-ci est vide.
Tu vas certainement devoir adapter la macro car je pense que le résultat ne te conviendra pas pour la ligne 4 de ton fichier exemple car ma macro va coller toto dans la cellule B4
Bon courage
ST
"Le Youki ..." a écrit dans le message de news:
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
D'avance merci de vos réponses, cordialement,
Le Youki ...
JCR
Bonjour,
Après avoir sélectionné la zone concernée, exécute cette macro.
Sub Macro1()
Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=+R[-1]C" Selection.CurrentRegion.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse End Sub
Attention pour pouvoir ensuite trier les lignes la macro fait un copier, collage spécial de la zone entière.
"Le Youki ..." a écrit dans le message de news:
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
D'avance merci de vos réponses, cordialement,
Le Youki ...
Bonjour,
Après avoir sélectionné la zone concernée, exécute cette macro.
Sub Macro1()
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=+R[-1]C"
Selection.CurrentRegion.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
_
False, Transpose:úlse
End Sub
Attention pour pouvoir ensuite trier les lignes la macro fait un copier,
collage spécial de la zone entière.
"Le Youki ..." <no-spam-le.youki@free.fr> a écrit dans le message de news:
mn.cbf77d54f668d7b2.19252@free.fr...
Bonjour à tous,
cette question a sans doute été souvent posée sur le forum mais je ne suis
pas arrivé à trouver une solution qui réponde exactement à mon problème:
ma feuille de calcul se présente ainsi:
A B
1 10 toto
2
3
4 11
5 titi
.
. 12
.
30 13
.
50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A
& B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la
prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la
feuille.
Après avoir sélectionné la zone concernée, exécute cette macro.
Sub Macro1()
Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=+R[-1]C" Selection.CurrentRegion.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse End Sub
Attention pour pouvoir ensuite trier les lignes la macro fait un copier, collage spécial de la zone entière.
"Le Youki ..." a écrit dans le message de news:
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
D'avance merci de vos réponses, cordialement,
Le Youki ...
Le Youki ...
Ca y est ... j'ai trouvé ... C'est assez basique mais ça marche ... Merci de votre aide ...
Le Youki ...
Sub Completer()
For ligne = 1 To 1000 For colonne = 1 To 3 If IsEmpty(Cells(ligne, colonne)) Then Cells(ligne, colonne) = Cells(ligne - 1, colonne) Next colonne Next ligne End Sub
Le Youki ... a présenté l'énoncé suivant :
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
D'avance merci de vos réponses, cordialement,
Le Youki ...
Ca y est ... j'ai trouvé ...
C'est assez basique mais ça marche ...
Merci de votre aide ...
Le Youki ...
Sub Completer()
For ligne = 1 To 1000
For colonne = 1 To 3
If IsEmpty(Cells(ligne, colonne)) Then Cells(ligne, colonne) =
Cells(ligne - 1, colonne)
Next colonne
Next ligne
End Sub
Le Youki ... a présenté l'énoncé suivant :
Bonjour à tous,
cette question a sans doute été souvent posée sur le forum mais je ne suis
pas arrivé à trouver une solution qui réponde exactement à mon problème: ma
feuille de calcul se présente ainsi:
A B
1 10 toto
2
3
4 11
5 titi
.
. 12
.
30 13
.
50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B
tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre
et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.
Ca y est ... j'ai trouvé ... C'est assez basique mais ça marche ... Merci de votre aide ...
Le Youki ...
Sub Completer()
For ligne = 1 To 1000 For colonne = 1 To 3 If IsEmpty(Cells(ligne, colonne)) Then Cells(ligne, colonne) = Cells(ligne - 1, colonne) Next colonne Next ligne End Sub
Le Youki ... a présenté l'énoncé suivant :
Bonjour à tous, cette question a sans doute été souvent posée sur le forum mais je ne suis pas arrivé à trouver une solution qui réponde exactement à mon problème: ma feuille de calcul se présente ainsi:
A B 1 10 toto 2 3 4 11 5 titi . . 12 . 30 13 . 50 tata
par une macro, je voudrais recopier vers le bas le contenu des colonnes A & B tant qu'elles sont vides et quand on rencontre une nouvelle valeur la prendre et à nouveau la copier vers le bas, etc ... jusqu'au bas de la feuille.