Manipuler données d'une feuil à partir d'une autre

Bonjour à tous !

je débute en vba excel et je rencontre un petit souci dans la conception d'une petite macro.

Grosso modo, il s'agit de comptabiliser le nombre de mots "ORDINATEUR" dans une colonne à partir

d'une autre feuille excel. J'aimerai donc savoir comment initialiser une variable "cellule_ordinateur" de ma macro

de ma feuil1 pour travailler sur la feuil2.

genre:

(je suis sur l'éditeur de la macro de la feuil1)

dim cellule_ordinateur as Range

set cellule_ordinateur = worksheet("feuil2").range("A3)

Evidemment ce genre de truc ne marche pas comment alors faire pour y arriver ?

J'espère avoir assez clair !

Merci d'avance pour votre aide !

Première erreur : pour faire référence à la cellule A3 de la feuille 'feuil2'

set cellule_ordinateur = worksheet("feuil2").range("A3)

Tu as oublié un S et de fermer un guillemet :

set cellule_ordinateur = worksheets("feuil2").range("A3")

bonjour,

Il faut éviter les noms de variable à rallonge : Si ta variable prends plus de place que l'adresse elle même, à quoi bon instancier une variable ?

Sinon oui c'est à peu près ça :

Sub galopin()
Dim plage As Range, cellule As Range, cpt&
Set plage = Worksheets(2).Range("B1:B5000")
For Each cellule In plage
If cellule.Value = "blabla" Then cpt = cpt + 1
Next
MsgBox cpt
End Sub

A+

Sub macro()

Dim onglet2 As Worksheet, plage_recherche As Range, result&, mot_cherche$
Set onglet2 = Worksheets("nom_onglet_de_recherche")
Set plage_recherche = onglet2.Range("A1:A" & onglet2.Range("A65000").End(xlUp).Row) 'colonne A par exemple

mot_cherche = "ORDINATEUR" 'mot cherche
result = WorksheetFunction.CountIf(plage_recherche, mot_cherche) 'nombre de fois

MsgBox result 'affiche le resultat

End Sub

Salut à tous !

CA MARCHE !

@ketamacanna

En fait, pour le s, je l'ai oublié en tapant ma question mais il était bien présent dans mon code !

En fait, je ne comprenais pourquoi ceci ne marchait pas :

set cellule_ordinateur = worksheets("feuil2").range("A3")

En fait, pour que ça fonctionne, j'ai dû passer par une variable supplémentaire avant de créer ma variable

comme indiqué dans ton dernier code.

Dim onglet2 As Worksheet, plage_recherche As Range, result&, mot_cherche$
Set onglet2 = Worksheets("nom_onglet_de_recherche")
Set plage_recherche = onglet2.Range("A1:A" & onglet2.Range("A65000").End(xlUp).Row

Un grand merci pour ton aide !

@galopin01

en fait, j'ai écrit dans cet exemple cette variable ainsi afin de rendre mon propos plus clair !

Bonne journée à tous !

Bonjour, je me permets de polluer ce fil puis qu'il est résolu

Galopin01 j'aimerais savoir pour quoi tu rajoutes "&" à la fin de la variable "cpt"

galopin01 a écrit :

Dim plage As Range, cellule As Range, cpt&

Est ce une règle ? Une habitude ? Est important ?

Merci

@narayan : ta ligne de code est correcte, c'est que tu devais avoir un autre classeur excel ouvert, et ça a du buguer sur le nom du classeur. Si tu lances ton code du classeur actif contenant le code il n'y a pas de problème.

@bastlat : & correspond au type de variable long :

Dim ma_variable as long peut se simplifier par :

Dim ma_variable&

Cordialement

Rechercher des sujets similaires à "manipuler donnees feuil partir"