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