Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Questions idiotes pour la plupart d'entre vous je suis sur ...

5 réponses
Avatar
Emmanuel Valette
Je cherche à maitriser les briques de bases qui
permettent d'effectuer les actions suivantes :

"Lire le texte d'une cellule" ---> Par exemple A1 = "Toto"
"Lire un chiffre dans une autre cellule" --> A2 = 5

For i = 1 to (resultat de A2)
"Ouvrir une feuille de nom [A1][A2]"
next i ---> Toto1, Toto2, ...Toto5

----
C'est pas fini :

Quand j'ai :
Range("A7").Select
ActiveCell.FormulaR1C1 = "Texte"
Range("A8").Select

Pourquoi ne puis-je pas remplacer
" Range("A8").Select" par "ActiveCell.Row = ActiveCell.Row+1"

Comment se décaler de la sorte en lignes et en colonnes
d'une valeur lue dans une case ?

5 réponses

Avatar
michdenis
Bonjour Emmanuel,

Essaie quelque chose dans ce genre ... en supposant que j'ai compris (?) ce que tu tentes de faire.

'-----------------------------
With worksheets("Feuil1")
For i = .Range("A2").Value
sheets(.range("A1").value & i).activate
With activesheet
with .Range("A7")
.value = Texte
.offset(1).select
end with
end with
Next i
end with
'-----------------------------


! Pourquoi ne puis-je pas remplacer
! " Range("A8").Select" par "ActiveCell.Row = ActiveCell.Row+1"

ActiveCell.Row n'est pas une adresse de cellule mais le numéro de la cellule active. Si tu ajoutes 1 à ce numéro, tu obtiendras le
numéro de la ligne.

tu peux utiliser la commande pour passer à la ligne suivante :
activecell.offset(1).select


Salutations!


"Emmanuel Valette" a écrit dans le message de news: 42fcaabb$0$7810$
Je cherche à maitriser les briques de bases qui
permettent d'effectuer les actions suivantes :

"Lire le texte d'une cellule" ---> Par exemple A1 = "Toto"
"Lire un chiffre dans une autre cellule" --> A2 = 5

For i = 1 to (resultat de A2)
"Ouvrir une feuille de nom [A1][A2]"
next i ---> Toto1, Toto2, ...Toto5

----
C'est pas fini :

Quand j'ai :
Range("A7").Select
ActiveCell.FormulaR1C1 = C Range("A8").Select

Pourquoi ne puis-je pas remplacer
" Range("A8").Select" par "ActiveCell.Row = ActiveCell.Row+1"

Comment se décaler de la sorte en lignes et en colonnes
d'une valeur lue dans une case ?
Avatar
Emmanuel Valette
Merci Michdenis de te pencher sur mon problème.

For i = .Range("A2").Value
Cette ligne déclenche une erreur de compilation


ActiveCell.Row n'est pas une adresse de cellule
mais le numéro de la cellule active.
Pour moi c'est le numéro de ligne de la cellule active et

ActiveCell.Column est le numéro de colonne de la cellule active.

Si tu ajoutes 1 à ce numéro, tu
obtiendras le numéro de la ligne.
Comme ça ? "ActiveCell.Row = ActiveCell.Row+1" ?

Je ne comprends pas, ... obtenir comment ? où ?

tu peux utiliser la commande pour passer à la ligne suivante :
activecell.offset(1).select
Je vais essayer. ... et pour passer à la colonne suivante ?


Avatar
michdenis
Oui tu as raison, essaie plutôt ceci :

Ceci n'est seulement un exemple.. tu n'as pas clairement exprimé tes attentes de ce type de code !

'--------------------------
With Worksheets("Feuil1")

For i = 1 To .Range("A2")
Sheets(.Range("A2").Value + i).Activate
With ActiveSheet
With .Range("A7")
.Value = Texte
.Offset(1).Select
End With
End With
Next i
End With
'--------------------------

ActiveCell.Row = Numéro de ligne de la cellule active
ActiveCell.Column = Numéro de la colonne de la cellule active.

Pour passer à la cellule de la ligne suivante :
activecell.offset(1).select

Pour passer à la cellule de la colonne suivante :
ActiveCell.offset(,1).select


Salutations!


"Emmanuel Valette" a écrit dans le message de news: 42fcb1b1$0$17719$
Merci Michdenis de te pencher sur mon problème.

For i = .Range("A2").Value
Cette ligne déclenche une erreur de compilation


ActiveCell.Row n'est pas une adresse de cellule
mais le numéro de la cellule active.
Pour moi c'est le numéro de ligne de la cellule active et

ActiveCell.Column est le numéro de colonne de la cellule active.

Si tu ajoutes 1 à ce numéro, tu
obtiendras le numéro de la ligne.
Comme ça ? "ActiveCell.Row = ActiveCell.Row+1" ?

Je ne comprends pas, ... obtenir comment ? où ?

tu peux utiliser la commande pour passer à la ligne suivante :
activecell.offset(1).select
Je vais essayer. ... et pour passer à la colonne suivante ?


Avatar
Emmanuel Valette
Maintenant ça bute sur cette ligne :

Sheets(.Range("A2").Value + i).Activate
Erreur d'exécution 9. L'indice n'appartient pas à la sélection.
----------

Comme je l'ai dit je cherche à maîtriser les briques de bases.
Sinon le problème que je dois faire à terme :
1. Lancer un fichier commande
Saisir le nom d'un fichier de donnée Donnees_xyz.xls
2. Lire dans la feuille 1 du fichier de donnée un descriptif sur le
nombre de sites et le nombre de colonnes de données par sites.
(Chaque site représente une feuille de ce fichier)
3. Effectuer des statistiques et des courbes par site.
4. Créer un fichier Stats_xyz.xls et y déposer les résultats de ces
traitements.



Oui tu as raison, essaie plutôt ceci :

Ceci n'est seulement un exemple.. tu n'as pas clairement exprimé tes attentes de ce type de code !

'--------------------------
With Worksheets("Feuil1")

For i = 1 To .Range("A2")
Sheets(.Range("A2").Value + i).Activate
With ActiveSheet
With .Range("A7")
.Value = Texte
.Offset(1).Select
End With
End With
Next i
End With
'--------------------------

ActiveCell.Row = Numéro de ligne de la cellule active
ActiveCell.Column = Numéro de la colonne de la cellule active.

Pour passer à la cellule de la ligne suivante :
activecell.offset(1).select

Pour passer à la cellule de la colonne suivante :
ActiveCell.offset(,1).select


Salutations!


"Emmanuel Valette" a écrit dans le message de news: 42fcb1b1$0$17719$
Merci Michdenis de te pencher sur mon problème.

For i = .Range("A2").Value
Cette ligne déclenche une erreur de compilation


ActiveCell.Row n'est pas une adresse de cellule
mais le numéro de la cellule active.
Pour moi c'est le numéro de ligne de la cellule active et

ActiveCell.Column est le numéro de colonne de la cellule active.

Si tu ajoutes 1 à ce numéro, tu
obtiendras le numéro de la ligne.
Comme ça ? "ActiveCell.Row = ActiveCell.Row+1" ?

Je ne comprends pas, ... obtenir comment ? où ?

tu peux utiliser la commande pour passer à la ligne suivante :
activecell.offset(1).select
Je vais essayer. ... et pour passer à la colonne suivante ?






Avatar
michdenis
Bonjour Emmanuel,

| Erreur d'exécution 9

Cela signifie tout simplement que l'index de la feuille représenté par "Range("A2").Value + i " n'existe pas. Si la somme de cela
donne 5 et que tu n'as pas de Feuil5, cela provoquera une erreur, car la procédure ne pourra pas trouver la feuille désignée.

| Comme je l'ai dit je cherche à maîtriser les briques de bases

Si cela t'est possible, essaie de trouver un bon bouquin sur le sujet... cela aide grandement à saisir les notions de base. Il y
aura toujours ce forum pour les trucs que tu n'arrives pas à saisir ....


Salutations!



"Emmanuel Valette" a écrit dans le message de news: 42fcbbcd$0$18675$

Maintenant ça bute sur cette ligne :

Sheets(.Range("A2").Value + i).Activate
Erreur d'exécution 9. L'indice n'appartient pas à la sélection.
----------

Comme je l'ai dit je cherche à maîtriser les briques de bases.
Sinon le problème que je dois faire à terme :
1. Lancer un fichier commande
Saisir le nom d'un fichier de donnée Donnees_xyz.xls
2. Lire dans la feuille 1 du fichier de donnée un descriptif sur le
nombre de sites et le nombre de colonnes de données par sites.
(Chaque site représente une feuille de ce fichier)
3. Effectuer des statistiques et des courbes par site.
4. Créer un fichier Stats_xyz.xls et y déposer les résultats de ces
traitements.



Oui tu as raison, essaie plutôt ceci :

Ceci n'est seulement un exemple.. tu n'as pas clairement exprimé tes attentes de ce type de code !

'--------------------------
With Worksheets("Feuil1")

For i = 1 To .Range("A2")
Sheets(.Range("A2").Value + i).Activate
With ActiveSheet
With .Range("A7")
.Value = Texte
.Offset(1).Select
End With
End With
Next i
End With
'--------------------------

ActiveCell.Row = Numéro de ligne de la cellule active
ActiveCell.Column = Numéro de la colonne de la cellule active.

Pour passer à la cellule de la ligne suivante :
activecell.offset(1).select

Pour passer à la cellule de la colonne suivante :
ActiveCell.offset(,1).select


Salutations!


"Emmanuel Valette" a écrit dans le message de news: 42fcb1b1$0$17719$
Merci Michdenis de te pencher sur mon problème.

For i = .Range("A2").Value
Cette ligne déclenche une erreur de compilation


ActiveCell.Row n'est pas une adresse de cellule
mais le numéro de la cellule active.
Pour moi c'est le numéro de ligne de la cellule active et

ActiveCell.Column est le numéro de colonne de la cellule active.

Si tu ajoutes 1 à ce numéro, tu
obtiendras le numéro de la ligne.
Comme ça ? "ActiveCell.Row = ActiveCell.Row+1" ?

Je ne comprends pas, ... obtenir comment ? où ?

tu peux utiliser la commande pour passer à la ligne suivante :
activecell.offset(1).select
Je vais essayer. ... et pour passer à la colonne suivante ?