Pour Jacky: problème macro "NouvelleLigneEnDessous"...
1 réponse
ccdouble6
Utilisateur d'Excel2000 sur Windows XP, j'ai un problème avec la macro que tu
as mis à disposition sur Excelabo : "NouvelleLigneEnDessous".
J'ai réussi à la placer et à l'éxécuter, elle marche super bien hormis un
détail qui n'est pas négligeable.
Toutes les formules sont bien présentes sur la nouvelle ligne ajoutée, le
problème ce sont les autres lignes: leurs formules ne prennent plus en
compte les données de la ligne ajoutée, c'est comme si la ligne ajoutée était
"fantôme".
Exemple: je demande à la cellule "Resultat" d'afficher la valeur de celle
juste au-dessus. Avec la macro installée toute nouvelle ligne insérée
au-dessus de "Résultat" n'est pas prise en compte: "Résultat" se réfère
toujours à la cellule d'avant l'ajout, il "saute" la ligne ajoutée!
Je suis tout ce qu'il y a de plus novice en matière de macros et celle-ci
est trop complexe à mon niveau pour que j'arrive à "l'arranger".
Ci-dessous la macro dont il est question:
----------------------------------------------------------------------
Sub NouvelleLigneEnDessous()
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig + 1, i).HasFormula Then
Cells(ZtNumLig + 1, i).ClearContents
End If
Next i
ActiveCell.Range("A2").Select
End Sub
Jacky, (N°1021)
----------------------------------------------------------------------
Y a-t-il moyen de la corriger pour que les autres lignes "reconnaissent" les
données de la ligne ajoutée?
Je te remercie par avance.
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
jps
bonjour ccdouble6 il me semblait avoir répondu à cette question que tu poses pour la seconde fois...pourvu que tu ne changes pas de pseudo entretemps... je ne suis pas jacky, hélas! mais à l'époque, il avait "travaillé" pour moi dans le même cadre que celui qui te préoccupe ; je crois pouvoir te conseiller d'utiliser plutôt "NouvelleLigneAuDessus" pour que ton tableau prenne en compte les données de la ligne ajoutée... voici la proc en question, fais des essais et tu nous dis si ça te convient dès l'instant où le fait de saisir en première ligne plutôt qu'en dernière ne te chagrine pas ; de toutes façons, c'est le prix à payer... HTH jps
Sub NouvelleLigneAuDessus() ' Insère une ligne au-dessus de la ligne qui contient la cellule active ' et y recopie les formules qu'elle contient 'Dim ZtNumLig As Integer Dim ZtDerCol As Integer Dim i ActiveCell.EntireRow.insert ActiveCell.Range("A2").Select ZtNumLig = ActiveCell.Row ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _ Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig - 1, i).HasFormula Then Cells(ZtNumLig - 1, i).Clear 'Contents(pour que s'annulent aussi les commentaires) End If Next i End Sub
"ccdouble6" a écrit dans le message de news:
Utilisateur d'Excel2000 sur Windows XP, j'ai un problème avec la macro que tu
as mis à disposition sur Excelabo : "NouvelleLigneEnDessous". J'ai réussi à la placer et à l'éxécuter, elle marche super bien hormis un détail qui n'est pas négligeable.
Toutes les formules sont bien présentes sur la nouvelle ligne ajoutée, le problème ce sont les autres lignes: leurs formules ne prennent plus en compte les données de la ligne ajoutée, c'est comme si la ligne ajoutée était
"fantôme". Exemple: je demande à la cellule "Resultat" d'afficher la valeur de celle juste au-dessus. Avec la macro installée toute nouvelle ligne insérée au-dessus de "Résultat" n'est pas prise en compte: "Résultat" se réfère toujours à la cellule d'avant l'ajout, il "saute" la ligne ajoutée!
Je suis tout ce qu'il y a de plus novice en matière de macros et celle-ci est trop complexe à mon niveau pour que j'arrive à "l'arranger". Ci-dessous la macro dont il est question: ---------------------------------------------------------------------- Sub NouvelleLigneEnDessous()
Dim ZtNumLig As Integer Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert ZtNumLig = ActiveCell.Row ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _ Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig + 1, i).HasFormula Then Cells(ZtNumLig + 1, i).ClearContents End If Next i ActiveCell.Range("A2").Select End Sub
Jacky, (N°1021) ---------------------------------------------------------------------- Y a-t-il moyen de la corriger pour que les autres lignes "reconnaissent" les
données de la ligne ajoutée? Je te remercie par avance.
ccdouble6.
bonjour ccdouble6
il me semblait avoir répondu à cette question que tu poses pour la seconde
fois...pourvu que tu ne changes pas de pseudo entretemps...
je ne suis pas jacky, hélas! mais à l'époque, il avait "travaillé" pour moi
dans le même cadre que celui qui te préoccupe ; je crois pouvoir te
conseiller d'utiliser plutôt "NouvelleLigneAuDessus" pour que ton tableau
prenne en compte les données de la ligne ajoutée...
voici la proc en question, fais des essais et tu nous dis si ça te convient
dès l'instant où le fait de saisir en première ligne plutôt qu'en dernière
ne te chagrine pas ; de toutes façons, c'est le prix à payer...
HTH
jps
Sub NouvelleLigneAuDessus()
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
'Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.insert
ActiveCell.Range("A2").Select
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig - 1, i).HasFormula Then
Cells(ZtNumLig - 1, i).Clear 'Contents(pour que s'annulent aussi
les commentaires)
End If
Next i
End Sub
"ccdouble6" <ccdouble6@discussions.microsoft.com> a écrit dans le message de
news:8B27F0F5-C205-429B-A3B3-82FD2BD27040@microsoft.com...
Utilisateur d'Excel2000 sur Windows XP, j'ai un problème avec la macro que
tu
as mis à disposition sur Excelabo : "NouvelleLigneEnDessous".
J'ai réussi à la placer et à l'éxécuter, elle marche super bien hormis un
détail qui n'est pas négligeable.
Toutes les formules sont bien présentes sur la nouvelle ligne ajoutée, le
problème ce sont les autres lignes: leurs formules ne prennent plus en
compte les données de la ligne ajoutée, c'est comme si la ligne ajoutée
était
"fantôme".
Exemple: je demande à la cellule "Resultat" d'afficher la valeur de celle
juste au-dessus. Avec la macro installée toute nouvelle ligne insérée
au-dessus de "Résultat" n'est pas prise en compte: "Résultat" se réfère
toujours à la cellule d'avant l'ajout, il "saute" la ligne ajoutée!
Je suis tout ce qu'il y a de plus novice en matière de macros et celle-ci
est trop complexe à mon niveau pour que j'arrive à "l'arranger".
Ci-dessous la macro dont il est question:
----------------------------------------------------------------------
Sub NouvelleLigneEnDessous()
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig + 1, i).HasFormula Then
Cells(ZtNumLig + 1, i).ClearContents
End If
Next i
ActiveCell.Range("A2").Select
End Sub
Jacky, (N°1021)
----------------------------------------------------------------------
Y a-t-il moyen de la corriger pour que les autres lignes "reconnaissent"
les
données de la ligne ajoutée?
Je te remercie par avance.
bonjour ccdouble6 il me semblait avoir répondu à cette question que tu poses pour la seconde fois...pourvu que tu ne changes pas de pseudo entretemps... je ne suis pas jacky, hélas! mais à l'époque, il avait "travaillé" pour moi dans le même cadre que celui qui te préoccupe ; je crois pouvoir te conseiller d'utiliser plutôt "NouvelleLigneAuDessus" pour que ton tableau prenne en compte les données de la ligne ajoutée... voici la proc en question, fais des essais et tu nous dis si ça te convient dès l'instant où le fait de saisir en première ligne plutôt qu'en dernière ne te chagrine pas ; de toutes façons, c'est le prix à payer... HTH jps
Sub NouvelleLigneAuDessus() ' Insère une ligne au-dessus de la ligne qui contient la cellule active ' et y recopie les formules qu'elle contient 'Dim ZtNumLig As Integer Dim ZtDerCol As Integer Dim i ActiveCell.EntireRow.insert ActiveCell.Range("A2").Select ZtNumLig = ActiveCell.Row ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _ Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig - 1, i).HasFormula Then Cells(ZtNumLig - 1, i).Clear 'Contents(pour que s'annulent aussi les commentaires) End If Next i End Sub
"ccdouble6" a écrit dans le message de news:
Utilisateur d'Excel2000 sur Windows XP, j'ai un problème avec la macro que tu
as mis à disposition sur Excelabo : "NouvelleLigneEnDessous". J'ai réussi à la placer et à l'éxécuter, elle marche super bien hormis un détail qui n'est pas négligeable.
Toutes les formules sont bien présentes sur la nouvelle ligne ajoutée, le problème ce sont les autres lignes: leurs formules ne prennent plus en compte les données de la ligne ajoutée, c'est comme si la ligne ajoutée était
"fantôme". Exemple: je demande à la cellule "Resultat" d'afficher la valeur de celle juste au-dessus. Avec la macro installée toute nouvelle ligne insérée au-dessus de "Résultat" n'est pas prise en compte: "Résultat" se réfère toujours à la cellule d'avant l'ajout, il "saute" la ligne ajoutée!
Je suis tout ce qu'il y a de plus novice en matière de macros et celle-ci est trop complexe à mon niveau pour que j'arrive à "l'arranger". Ci-dessous la macro dont il est question: ---------------------------------------------------------------------- Sub NouvelleLigneEnDessous()
Dim ZtNumLig As Integer Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert ZtNumLig = ActiveCell.Row ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _ Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig + 1, i).HasFormula Then Cells(ZtNumLig + 1, i).ClearContents End If Next i ActiveCell.Range("A2").Select End Sub
Jacky, (N°1021) ---------------------------------------------------------------------- Y a-t-il moyen de la corriger pour que les autres lignes "reconnaissent" les
données de la ligne ajoutée? Je te remercie par avance.