Bonjour tout le monde,
Je me permet de demander votre car après plusieurs heures de recherches sur la toile je ne trouve pas de solutions ....
je souhaiterai ajouter à cette petite macro une fonction supplémentaire: faire une boucle sur les 40 dernières lignes , si la cellule en colonne D n'est pas une valeur numérique effacer les cellules de A à K de cette même ligne ( je ne souhaite pas effacer la ligne entière car des valeurs en colonne L, M, N, O et P me servent pour des graphiques. )
Sub reset_507()
Dim plage As Range
Dim Cel As Range
With Sheets("507")
Set plage = Range(.Cells(6, 6).End(xlDown)(-40), .Cells(6, 10).End(xlDown)(-2))
For Each Cel In plage
If IsNumeric(Cel) Then
Cel.Value = Cel.Value
Else:
Cel.ClearContents
End If
Next Cel
End With
End Sub
et donc tu ne réponds pas à la question !!!
les 40 dernières lignes sont: ???
43-83
83-123 ou ??????
la macro qui efface les colonnnes A à J si il n'y a pas de valeur numérique en D
VB:
Sub reset_507()
Dim PlageD As Range
Dim Cel As Range
Dim Derlig As Long
Dim Lig40 As Long
Dim Lig As Long
With Sheets("507")
Derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne A
Lig40 = Derlig - 40 'première ligne des 40 dernières
Set PlageD = .Range("D" & Lig40 & ":D" & Derlig) 'Plage des 40 dernières lignes de la colonne D
For Each Cel In PlageD
If Not IsNumeric(Cel.Value) Or Cel.Value = "" Then 'pas numerique ou vide
Lig = Cel.Row 'ligne pour RAZ...
je vous met un extrait du fichier en copie, par contre ile ne fonctionnera pas complètement car je fais des extraction de donnée d'un logiciel de production
Par contre j'ai vraiment besoin de garder ma premiere partie de code pour effacer uniquement les formules dans les colonnes G H et J la ou des données numériques sont présentes sur la ligne
les 40 dernières lignes.. ce sont lesquelles pour toi dans ton fichier???
un commentaire sur ton fichier
ce n'est pas très cohérent
1) feuille 507
tu as 83 lignes remplies sur les colonnes A à J, mais ensuite
il y a 842 lignes remplies sur les colonnes K à O
soit 842-83=759 lignes à moitié vide
une MFC qui court sur des colonnes entières inutilement
tu dis vouloir garder les lignes "à moitié vide" pour tracer ton graph?? oi=k. sauf que selon les séries. seules les 280 ou 583 lignes sont prises en compte
pourquoi ne pas utiliser des tables structurées qui permettent d'avoir une plage de données "utiles" dynamique ?
autre chose: les macros sont plutot à mettre dans un module standard
et tes boutons; bah. il faut leur affecter la bonne macro
Mes 40 dernières lignes sont sur la bas de la colonne A
Les colonnes K L M et O sont des colonnes qui me servent pour mon graphique je m'explique :
Mes donnés dans les colonnes A à E sont des valeurs réelles extraite sur le logiciel de prod à la date et heure souhaitée, hors pour estimer quand la valeur R (colonne D) va atteindre 10% d'usure (colonne K) ou 7% (colonne L) je trace une courbe tendance linéaire ou logarithmique et Je prolonge mon graphique dans le temps et je cherche la date à laquelle ma tendance coupe la valeur 10% ou 7%
Ensuite les colonnes G H et I sont un classement des produits en fonction de plusieurs paramètres.
Concernant les boutons je ne comprends pas ce que tu veux dire ? sur le bouton feuille graph je souhaite affecter la Marco Graphique10.reset_507 .
Concernant les séries quand jai tronqué j'ai perdu des donnée car normalement mon fichier démarre en 2019 (trop lourd pour le charger sur le site). mais j'ai normalement des valeurs dans les colonne H et I.
Je sais pas si j'ai été très clair ...
Dsl je ne connais pas les tables structurée ... je ne suis pas du tout un expert sur excel je fais ce que je peux en m'aidant d'internet et pour la première fois je poste sur un forum car la je coince vraiment .
les 40 dernières lignes.. ce sont lesquelles pour toi dans ton fichier???
un commentaire sur ton fichier
ce n'est pas très cohérent
1) feuille 507
tu as 83 lignes remplies sur les colonnes A à J, mais ensuite
il y a 842 lignes remplies sur les colonnes K à O
soit 842-83=759 lignes à moitié vide
une MFC qui court sur des colonnes entières inutilement
tu dis vouloir garder les lignes "à moitié vide" pour tracer ton graph?? oi=k. sauf que selon les séries. seules les 280 ou 583 lignes sont prises en compte
pourquoi ne pas utiliser des tables structurées qui permettent d'avoir une plage de données "utiles" dynamique ?
autre chose: les macros sont plutot à mettre dans un module standard
et tes boutons; bah. il faut leur affecter la bonne macro
Dans le code, la ligne
Derlig = .Range("A" & Rows.Count).End(xlUp).Row
donne le numéro de la Dernière Ligne NON vide de la colonne A
dans le cas présent ==>83
mais si tu avais fait
Derlig = .Range("K" & Rows.Count).End(xlUp).Row
le résultat serait 842
Dans le code, la ligne
Derlig = .Range("A" & Rows.Count).End(xlUp).Row
donne le numéro de la Dernière Ligne NON vide de la colonne A
dans le cas présent ==>83
mais si tu avais fait
Derlig = .Range("K" & Rows.Count).End(xlUp).Row
le résultat serait 842
La macro que ma proposée oneida fonctionne bien quand on la lance via VBA , par contre quand j'affecte ma macro au bouton sur ma page3-Graph507 ca me met ce code erreur
et donc tu ne réponds pas à la question !!!
les 40 dernières lignes sont: ???
43-83
83-123 ou ??????
la macro qui efface les colonnnes A à J si il n'y a pas de valeur numérique en D
VB:
Sub reset_507()
Dim PlageD As Range
Dim Cel As Range
Dim Derlig As Long
Dim Lig40 As Long
Dim Lig As Long
With Sheets("507")
Derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne A
Lig40 = Derlig - 40 'première ligne des 40 dernières
Set PlageD = .Range("D" & Lig40 & ":D" & Derlig) 'Plage des 40 dernières lignes de la colonne D
For Each Cel In PlageD
If Not IsNumeric(Cel.Value) Or Cel.Value = "" Then 'pas numerique ou vide
Lig = Cel.Row 'ligne pour RAZ
.Range("A" & Lig & ":J" & Lig).ClearContents 'on efface la ligne de la colonne A à J
End If
Next Cel
End With
Set PlageD = Nothing
End Sub
et donc tu ne réponds pas à la question !!!
les 40 dernières lignes sont: ???
43-83
83-123 ou ??????
la macro qui efface les colonnnes A à J si il n'y a pas de valeur numérique en D
VB:
Sub reset_507()
Dim PlageD As Range
Dim Cel As Range
Dim Derlig As Long
Dim Lig40 As Long
Dim Lig As Long
With Sheets("507")
Derlig = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne A
Lig40 = Derlig - 40 'première ligne des 40 dernières
Set PlageD = .Range("D" & Lig40 & ":D" & Derlig) 'Plage des 40 dernières lignes de la colonne D
For Each Cel In PlageD
If Not IsNumeric(Cel.Value) Or Cel.Value = "" Then 'pas numerique ou vide
Lig = Cel.Row 'ligne pour RAZ
.Range("A" & Lig & ":J" & Lig).ClearContents 'on efface la ligne de la colonne A à J
End If
Next Cel
End With
Set PlageD = Nothing
End Sub
je ne sais pas comment tu te débrouilles.. mais en pj: pas de souci
le code fait ce qu'il est censé faire.. à savoir rien puisqu'il n'y a pas de cellule vide dans la colonne D
je suis en train de regarder tes autres macros...
elles fonctionnent???
si je regarde la macro "Data"
telle qu'elle est écrite soit elle ne fait rien (la date en Colonne A 3 lignes avant la fin est Supérieure a aujourd'hui).. soit elle tourne en rond jusqu'à plantage
En fait tu a écraser le bouton dans la feuille "507" c'est une macro (cc_507) qui me sert à créer automatiquement des lignes supplémentaire en fonction de la date. hors quand je les créée ca me met les heures du jours même celle qui ne sont pas passées.
Avec ma deuxième macro (reset_507) dont le bouton se situe sur la feuille graphique "3-Graph507" je supprime
dans un premier temps les formules dans les colonnes G H et I sur les lignes ou la cellule en colonne D est numérique
ensuite j'efface les cellules de A à J si la valeur de la colonne D n'est pas numérique (<No Value>)