Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 15h19   #1
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
Par défaut code a modifier pour plusieurs colonnes

bonjour a vous
ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub UserForm_Activate()
Dim Nb%, Nbdon%
Dim F1$, F2$
Dim Devise$
Dim Société%
F1 = "Feuil1"
F2 = "base"
    With UserForm1
        .StartUpPosition = 1
        .Height = 405.5
        .Width = 773.75
    End With
Call Box1
 
Worksheets("base").Activate
Nb = Worksheets("base").Range("M2").Value
Sheets("Feuil1").Select
Nbdon = Worksheets("Feuil1").Range("B7").Value
End Sub
prends ses infos dans la cellule d'une feuille
moi je voudrais qu'elle le prennent toutes les 13 colonnes c'est a dire que nb est représenté 8 fois tous les 13 colonnes dans la même feuille
la feuil1 c'est bien mais pas pour la feuille base
si cela assez explicit

merci par avance

Pascal

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h28   #2
Membre du Club
 
Kévin Simon
Inscription : novembre 2010
Messages : 65
Détails du profil
Informations personnelles :
Nom : Kévin Simon
Âge : 21

Informations forums :
Inscription : novembre 2010
Messages : 65
Points : 40
Points : 40
Code :
1
2
3
4
5
6
7
 
For i=1 to 8
 
Nb = Worksheets("base").Range("M2").Value
Range("M2").offset(0,i*13)
 
Next
kesimon63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/01/2012, 15h43   #3
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
merci Kesimon63
cela approche du résultat mais ca bug a
Code :
Range("M2").offset(0,i*13)
en me disant qu'il y a une erreur de synthaxe

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h45   #4
Membre du Club
 
Kévin Simon
Inscription : novembre 2010
Messages : 65
Détails du profil
Informations personnelles :
Nom : Kévin Simon
Âge : 21

Informations forums :
Inscription : novembre 2010
Messages : 65
Points : 40
Points : 40
Code :
1
2
3
4
5
6
7
8
9
 
Range("M2").select
 
For i = 1 To 8
 
Nb = Worksheets("base").Selection.Value
Range("M2").Offset(0, i * 13).Select
 
Next
Autant pour moi, petit oubli.
Voilà ça devrait rouler.
kesimon63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/01/2012, 16h11   #5
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonjour Kesimon63
merci pour toutc'est parfait
cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 17h28   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Si je peux me permettre, on évite en générale de faire des Select dans le code :
Code :
1
2
3
For i = 1 To 8
  Nb = Worksheets("base").Range("M2").Offset(0, (i - 1) * 13).Value
Next
Et sinon, je suppose que tu rajoutes quelque chose à faire avecNb, parce que là, on change sa valeur sans l'utiliser. Mais si tu dis que le code précédent marchait, c'est que tu as déjà du adapter.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 16/01/2012, 17h53   #7
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir zebredeloup et les autres
tu peut te permettre, car je sais que les select ne font pas bon ménage avec le reste du code, mais étant débutant dans ce type de code je ne savais pas comment m'y prendre
merci pour toutles 2 solutions fonctionnent
pour te rassurer dans le code complet du post en haut tout, j'avais supprimer des lignes qui ne changeait rien au code car elle font prendre des valeurs aux caption des labels du type
Code :
UserForm1.Label1.Caption = "Quantité Données Bibliothèque :   " & Nb
ou l'on retrouve Nb a cette ligne
nb est la quantité d'article qui est inscrit en M2 de la feuille "base" et justement comme il y a plusieures familles d'articles(8) il y a autant de valeurs a chercher et tous dans une seule celullea chaque fois
cordialement
je vais esayer de pauffiner tout ce que j'ai appris aujourd'hui et je reviendrais plus tard

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h17.


 
 
 
 
Partenaires

Hébergement Web