VBA Débutant

[Résolu]
Signaler
Messages postés
11
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
Messages postés
11
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
Bonjour
J'ai un fichier contenant  beaucoup de valeurs calculées. Plusieurs colonnes se rapportant chacune à une colonne.
(B avec G, C avec H, etc ... F avec K)

Le soucis c'est que cela fait un fichier tres tres lourd car je masque uniquement les formules à l'aide de "mis en forme automatique" mais elles sont toujours "présentes"

si la cellule A3 est remplie (cellule fixant l'heure), calcul à faire sur les cellues G à K3, puis pour la cellule A4 ....
Le nombre de lignes peut varier entre 100 à 10000.

Est il possible de "créer" la formule selon si oui ou non la cellule A3, etc .... est remplie par exemple.
Merci pour votre aide.

Code VBA ... mais je ne sais (toujours) pas où poster cette demande sur le bon thème. Désolé si je froisse certaines personnes.

5 réponses

Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011

Hello,

Je dois dire que je ne saisi pas tout dans ce code, mais je crois que ça plante au niveau du autofill destination.
Moi j'ai rencontré plusieurs fois le souciset la pluspart du temps le plus rapide a été de l'esquiver
Si j'ai bien compris tu concerves tes formule sur la ligne 3 et il faut les incrémenter jusque la dernière ligne de donnée.
Voici la manière dont je proéderais:
On modifie un peu a (= nombre de lignes moins 1)
a = Range("A3").End(xlDown).Row-2
Puis, juste après Range("G3:K3").Select
Selection.Copy
Range("G4").Select
Range(Selection, Selection.Offset(a, 0)).Select
    Selection.PasteSpecial Paste: =xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Je pense qu'avec ça, ça ira.

BR

USERRRQI115
Simple user
Great brain
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
(déplacé vers la bonne section. t'auras plus qu'à trouver un titre explicite la prochaine fois )
Messages postés
181
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
4 février 2011

Hello,

Pour ma part je crois que le plus simple est de créer une macro qui générerait tes formule à condition que ta cellule A soit non vide.

Pour la boucle on peut partir sur:
Do While not ActiveCell.value=""
créer les formules dans les cellules concernées de la lignes (G à K).
Passer à la ligne suivante (de la colonne A)
Loop

Pou résoudre le problème de taille du fichier j'ai l'habitude de ne pas garder les formule en faisant un copier collage spécial valeur. C'est une manip que tu peux inclure à la fin.

Pour trouver les codes te permettant de créer les formules et de faire ce copier coller je te conseille de passer par l'enregistreur de macro.

Si souci n'hésites pas.

BR
 
USERRRQI115
Simple user
Great brain
Messages postés
11
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008

Salut USERRRQI115
Merci pour ces quelques infos ... le soucis c'est que je ne peux pas faire de copier coller, c'est un document qualité ... Bref alors j'ai ce bout de code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer
If Union(Range("A3:A10000"), Target).Address = Range("A3:A10000").Address Then
Application.ScreenUpdating = False





If Range("A4") = "" Then
    Range("G4:K10000").ClearContents
    Range("A3").Select
    Exit Sub
End If
a = Range("A3").End(xlDown).Row
    If Union(Range("A3:A10000"), ActiveCell).Address = Range("A3:A10000").Address Then
             Range("G3:K3").Select
         Selection.AutoFill Destination:=Range(Cells(3, 10), Cells(a, 23))
    End If
    Range("A3").Select
        Application.ScreenUpdating = True







    End If
End Sub





Le soucis c'est que apparemment ça ne fonctionne pas ...







 




Merci pour ton aide
Messages postés
11
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008

Bonjour
Il me reste à savoir pour la macro tourne et tourne avec une seule ligne.
Merci à toi, ô supporter ... que ta saison soit belle ... mais que tu sois derrière mes préférés !!


Merci encore


@+