Ajouter une condition

Bonjour, je voudrais ajouter la condition: "si la cellule ne commence pas par ":" dans la ligne suivante : cel.Offset(0, -1) = Application.CountIf(Columns("I"), "*" & cel)

2ieme question: comment doit-on interpreter la ligne: Set Plage = Columns(8).SpecialCells(xlCellTypeConstants, 23)

Sub MacroQte1() 'affiche en G le nombre d'occurences trouver en i pour les cellules avec du contenu de H et mise a jour de la liste de sub dans colonne L M N.
Dim Plage As Range
Dim cel As Range

    If Range("G" & Rows.Count).End(xlUp).Row > 2 Then
       Range("G3:G" & Range("G" & Rows.Count).End(xlUp).Row).ClearContents 'effacement de colonne G
    End If
    On Error Resume Next                                         ' Au cas pas de cellules correspondantes
    Set Plage = Columns(8).SpecialCells(xlCellTypeConstants, 23) ' Récupère toutes les constantes
    On Error GoTo 0                                              ' On rétablit la gestion des erreurs
    If Not Plage Is Nothing Then                                 ' Des cellules ?
      For Each cel In Plage                                      ' Oui alors pour chaque cellule
        If cel.Row > 2 Then
          cel.Offset(0, -1) = Application.CountIf(Columns("I"), "*" & cel)
        End If
      Next cel
    End If
    Recup_Labels ''creation de la liste des noms de routine , quantite et description ,colonnes L M N
End Sub

Salut,

Avant de poser une nouvelle question, ne veux-tu pas d'abord répondre aux fils encore ouverts ?

https://forum.excel-pratique.com/excel/activer-une-2ieme-fenetre-t47097.html

Cordialement.

Excuses-moi, c'est maintenant fait.

Salut,

Je remercie de m’avoir répondu sur cet autre post, en adéquation avec la Charte de notre Forum

Je ne suis malheureusement pas assez doué pour t’aider sans ton fichier et – par rapport au code visible – je ne sais même pas si je pourrais t’aider même avec ton fichier à disposition.

As-tu déjà cherché de l’aide sur Excel lui-même ? Si tu places par exemple ton curseur sur SpecialCells et que tu tapes F1, tu obtiens plein d’informations (par exemple que xlCellTypeConstants correspond à des cellules contenant des constantes et que si le type a la valeur xlCellTypeConstants, cet argument est utilisé pour déterminer quels types de cellules inclure dans le résultat).

Maintenant, soit tu me fournis ton fichier et je tente sans garantie de t’aider, soit tu attends de voir si quelqu’un intervient encore sur ce fil, soit tu l’indiques comme résolu et tu en ouvres un autre.

Cordialement.

Bonsoir

CAPUCIN a écrit :

si la cellule ne commence pas par ":

Sub MacroQte1() 'affiche en G le nombre d'occurences trouver en i pour les cellules avec du contenu de H et mise a jour de la liste de sub dans colonne L M N.
Dim Plage As Range
Dim cel As Range

  If Range("G" & Rows.Count).End(xlUp).Row > 2 Then
    Range("G3:G" & Range("G" & Rows.Count).End(xlUp).Row).ClearContents 'effacement de colonne G
  End If
  On Error Resume Next                                         ' Au cas pas de cellules correspondantes
  Set Plage = Columns(8).SpecialCells(xlCellTypeConstants, 23) ' Récupère toutes les constantes
  On Error GoTo 0                                              ' On rétablit la gestion des erreurs
  If Not Plage Is Nothing Then                                 ' Des cellules ?
    For Each cel In Plage                                      ' Oui alors pour chaque cellule
      If cel.Row > 2 Then
        If Left(cel, 1) <> ":" Then
          cel.Offset(0, -1) = Application.CountIf(Columns("I"), "*" & cel)
        End If
      End If
    Next cel
  End If
  Recup_Labels ''creation de la liste des noms de routine , quantite et description ,colonnes L M N
End Sub
CAPUCIN a écrit :

comment doit-on interpreter la ligne: Set Plage = Columns(8).SpecialCells(xlCellTypeConstants, 23)

C'est la version macro de

Appuies sur F5

Clic sur cellules....

Choisis "Constantes"

Clic sur Ok

Et le 23 correspond à : Nombres ou Texte ou Valeur logiques ou Erreurs

On mets dans variable de type Range toutes les cellules contenant une constante

Mais très bonne idée

Yvouille a écrit :

Si tu places par exemple ton curseur sur SpecialCells et que tu tapes F1

Merci Yvouille pour le truc, ca peut etre pratique.

Banzai: ton code est parfait, j'essayais de trouver comment mettre dans une formule alors que j'avais juste a mettre if ... je vais essayer de faire simple la prochaine fois.

Pour ce qui est de la ligne :Set Plage = Columns(8).SpecialCells(xlCellTypeConstants, 23) Comment savoir si 23 correspond a du texte ou autre? ca sert en quelque sorte de filtre pour reduire les cellules de la colonne 8?

OK Banzai, je viens de cliquer, car j'ai essayer l'enregistreur de macro avec F5. 23 correspond aux 4 choix.

SpecialCells(xlCellTypeConstants, 23) permet de recuperer seulement les cellules non vide.

Banzai, je cherche a utiliser ailleurs un bout de code venant d'une macro evenementiel que tu as deja ecrit pour moi. Sur la ligne:

If UCase(Target) Like Kase Then il faudrais que je remplace Target par "cellule active", le code serait quoi?

Sub codes()
 'Remplissage des colonnes C D E F (pour la ligne en cours seulement):
    For Each Kase In [VERIFICATION]         ' Pour chaque élément de la zone des mnémoniques
      If UCase(Target) Like Kase Then
        Application.EnableEvents = False

         'Je suis obligé de passer par un tableau sinon erreur ???????
       For i = 1 To 4                       ' On recopie dans le tableau les 4 éléments associés à la mnémonique
         Tablo(1, i) = Kase.Offset(0, i)    ' Nouvelle formule que l'on peut inscrire directement
       Next i
        Target.Offset(0, -6).Resize(1, 4) = Tablo
        Application.EnableEvents = True
         Exit For
      End If
    Next Kase
End Sub

Bonsoir

Tout simplement utilises ActiveCell

If UCase(ActiveCell) Like Kase Then

Merci Banzai pour ton aide,

Bonne soiree!

Capucin

Rechercher des sujets similaires à "ajouter condition"