VBA Cacher des lignes spécifiques pour meilleur visuel graphique

Bonjour,

J'ai un grand tableau dans lequel sont répertorié des produits, et pour chaque produit, des test spécifiques. Cependant pour des raison X ou Y certains cellules sont vides et d'autres contiennent des "X", ainsi, n'ayant pas réussi a les éliminer sans VBA dans le graphique (elles sont directement transformé en 0 et ajouté au graphique) je me suis dit que, simplement en lançant une macro de création de graphique en ajoutant quelques lignes avant l'apparition du graphique afin de masquer les lignes où les cellules sont soit vide soit "X" pourrait être plus simple. mais je suis nouveau, et mon code ne fonctionne pas, pourriez vous me dire où est mon erreur ?

merci,

Sub Graph_Densite_20C() ' ' Graph_Densite_20C Macro ' Densité à 20°C Dim nbcells, i As Integer nbcells = WorksheetFunction.CountA(Range("K:K")) i = 2 While i <= nbcells If Cells(i) Is Nothing Then If Cells(i).Value = 0 Then Cells(i).EntireRow.Hidden = False End If End If i = i + 1 Wend Sheets("Feuil3").Select ActiveCell.Range("K:K,A:A").Select ActiveCell.Activate ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select ActiveChart.SetSourceData Source:=Range("Feuil3!$K:$K,Feuil3!$A:$A") ActiveChart.ChartArea.Copy ActiveChart.Parent.Delete Sheets("Feuil1").Select ActiveSheet.Paste End Sub

Bonjour,

Il y a une erreur au niveau de ActiveCell au lieu de ActiveSheet :

   
    ActiveSheet.Range("K:K,A:A").Select
    ActiveSheet.Activate

Bonjour

Essaie ceci :

Dim lastRow As Long
Dim i As Integer
lastRow = ActiveSheet.Cells(Rows.Count, "K").End(xlUp).Row

For i = 2 To lastRow
    If Cells(i, "K") = "" Then
        Rows(i).EntireRow.Hidden = True
    End If
Next

Bonjour,

Merci, alors ça a effectivement marché pour toutes les cases vides, mais il me reste celle où il y a un "x", et lorsque j'essaie d'ajouter une condition If Cells(i, "K") = "" Or "x" Then ça me donne une erreur. Une idée ?

EDIT : je remarque que ce code, si petit, fait ramer tout a coup excel (est-ce normal ? j'ai 1500 lignes sur 30 colonnes environ)

tu as juste fait une erreur de syntaxe

If Cells(i, "K") = "" Or Cells(i, "K") = "x" Then

Ah super merci, ca fonctionne, c'est un peu long le calcul pour Excel mais ca fonctionne !

Merci beaucoup

Bonjour,

Pour acceler les choses tu peux ajouter cela :

Sub Code ()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
    'TON CODE ICI 
    'TON CODE ICI 
    'TON CODE ICI 
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True 
End sub
Rechercher des sujets similaires à "vba cacher lignes specifiques meilleur visuel graphique"