Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1412 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection plage de données VBA

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection plage de données VBA

n°2256200
zixx2
Posté le 20-04-2015 à 15:48:13  profilanswer
 

Bonjour,  
l'idée de ma macro serait de repertorier les matricules identiques ou non dans une de mes feuilles. Pour cela je supprime tout d'abord les lignes sans matricule présente dans mon fichier puis je fais un countIf (vba =NB.SI en excel) pour rechercher quel matricule se trouve dans la feuille précédente. Merci par avance pour votre aide!
 Pb : Je voudrais selectionner une plage de cellule sur ma feuille Log16 ( CountIf(F1.Range("D", Range("D" ).End(xlDown)), Range("D" & J))) mais j'ai une erreur de syntaxe dans mon code pouvez vous m'aider s'il vous plait?  
 

Code :
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. '
  5. Dim NbLg As Long
  6. Colonnes = Array("D" )
  7.   Set F1 = Sheets("Log16" )
  8.   Set F2 = Sheets("Log17" )
  9. With F1
  10.     Range("D:D" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  11. End With
  12. With F2
  13.     Range("D:D" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  14.    
  15.     NbLg = .Range("A" & Rows.Count).End(xlUp).Row
  16.    
  17.     For J = 2 To NbLg
  18.         F2.Range("F2" ).FormulaR1C1 = "= CountIf(F1.Range("D", Range("D" ).End(xlDown)), Range("D" & J))"
  19.     Next J
  20. End With


 
Cordialement,  
Jérémy

mood
Publicité
Posté le 20-04-2015 à 15:48:13  profilanswer
 

n°2256207
Arl Guhr
Posté le 20-04-2015 à 18:45:46  profilanswer
 

Ta ligne 22 as une erreur de syntaxe.
 
Dans une chaine de caractère, si tu veux qu'il y ai un " : il faut le doubler
"= CountIf(F1.Range("D", Range("D" ).End(xlDown)), Range("D" & J))"
deviens
"= CountIf(F1.Range(""D"", Range(""D"" ).End(xlDown)), Range(""D"" & J))"
 
Mais ça ne fonctionnera de toute façon pas car, dans une cellule F1.range ne veut rien dire :/
Ce que je comprend de ton problème c'est plutôt ça que tu veux :
"= CountIf(D:D, D" & J & " )"


Message édité par Arl Guhr le 20-04-2015 à 21:10:15

---------------
il s'appel le ronge me doute
n°2256303
patrice337​40
Avec la réponse, c'est facile.
Posté le 21-04-2015 à 18:32:21  profilanswer
 

Bonjour,
 
Essaies :

Code :
  1. Option Explicit
  2. Sub Macro1()
  3. Dim F1 As Worksheet
  4. Dim F2 As Worksheet
  5. Dim rng As Range
  6. Dim NbLg As Long
  7. Dim j As Long
  8.   Set F1 = Worksheets("Log16" )
  9.   Set F2 = Worksheets("Log17" )
  10.   With F1
  11.     On Error Resume Next
  12.     .Range("D:D" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  13.     On Error GoTo 0
  14.   End With
  15.   With F2
  16.     On Error Resume Next
  17.     .Range("D:D" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  18.     On Error GoTo 0
  19.     NbLg = .Range("A" & Rows.Count).End(xlUp).Row
  20.     For j = 2 To NbLg
  21.       .Range("F" & j).FormulaR1C1Local = "=NB.SI(L2C4:L" & NbLg & "C4;LC(-2))"
  22.     Next j
  23.   End With
  24. End Sub


 
Edit : pour le cas ou il n'y a pas de cellules vides


Message édité par patrice33740 le 21-04-2015 à 18:42:50

---------------
Cordialement, Patrice

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Selection plage de données VBA

 

Sujets relatifs
Copie coller avec VBA deux fichiers différentsBesoin d'aide Algorithmes VBA
VBA EXCEL impossible de modifier le contenu d'une celluleVBA excel Consolidation de données
VBA EXCEL exportation de donnée vers une BDEXCEL VBA Liaison Excel Base de donnée toute simple
Error Time 424 - VBA - Export vers wordVBA - Choisir les colonnes qui seront affichees
Plus de sujets relatifs à : Selection plage de données VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR